批处理实现文件复制

工作需要,经常要更新某个文件夹的(.c,.h)文件,应公司需求写的批处理脚本
@echo off
title FilesCopy
echo ***************FilesCopy*****************
echo 使用方法
echo 1.选择默认路径还是重新设定路径
echo 2.重新设定路径则拖拽源文件到黑屏幕,回车
echo 3.拖拽目标文件到黑屏幕,回车
echo 4.输入 123选择接下来的操作
echo 注意:选择拖拽改变路径并保存路径后,配置文件也将改变
echo 若只是临时路径不建议保存
echo ********************************************
echo 开始
:start
setlocal enabledelayedexpansion
cd %~dp0
rem 进入bat所在目录
for /f "tokens=1,2 delims=," %%i in (user.txt) do ( 
set "m_id=%%i" 
set "m_id2=%%j"  

echo 默认源路径%m_id%
echo 默认目标路径%m_id2% 
set /p op=请选择以上操作(1.使用默认路径/2.拖拽改变路径/3.结束退出程序):
if %op%==1 goto op1
if %op%==2 goto op2
if %op%==3 goto end
:op1
robocopy %m_id% %m_id2% *.h *.cpp *.c /s /XD *sim
md %m_id2%\abc
for /r %m_id2% %%i in (*.h)do copy "%%i" %m_id2%
for /r %m_id2% %%i in (*.cpp)do copy "%%i" %m_id2%
for /r %m_id2% %%i in (*.c)do copy "%%i" %m_id2%
echo %m_id2%
cd %m_id2% 
rem 首先删除目录这样遍历文件的时候就会少一些
for /d %%a in (*) do (rd /s /q "%%a")
@echo ...
@echo -----------------------------------------------------
@echo 文件拷贝完成
@echo -----------------------------------------------------
echo 输入1,2,3,选择下列操作
echo 1.使用上一次加载配置文件的路径
echo 2.拖拽改变源及目标文件
echo 3.结束程序
set /p op=请选择以上操作(1.使用默认路径/2.拖拽改变路径/3.结束):
if %op%==1 goto op1
if %op%==2 goto op2
if %op%==3 goto end
:op2
cd %~dp0
rem 进入bat所在目录
set /p inPath=输入或拖拽源文件至此:
set /p lataPath=输入或拖拽目标文件至此:
set /p cho= 是否保存路径(Y/N):
if %cho% equ y (
@echo %inPath%,%lataPath%> user.txt

robocopy %inPath% %lataPath% *.h *.cpp *.c /s /XD *sim
md %lataPath%\abc
for /r %lataPath% %%i in (*.h)do copy "%%i" %lataPath%
for /r %lataPath% %%i in (*.cpp)do copy "%%i" %lataPath%
for /r %lataPath% %%i in (*.c)do copy "%%i" %lataPath%
cd %lataPath% 
rem 首先删除目录这样遍历文件的时候就会少一些
for /d %%a in (*) do (rd /s /q "%%a")
@echo ...
@echo -----------------------------------------------------
@echo 文件拷贝完成
@echo -----------------------------------------------------
echo 1.使用最近一次加载路径/2.拖拽改变路径/3.结束退出程序/4.改变配置文件之后重新加载路径
set /p op=请选择以上操作:
if %op%==1 goto op1
if %op%==2 goto op2
if %op%==3 goto end
if %op%==4 goto start
:end
echo=
set /p choose=是否退出? (Y/N):
if /i %choose% equ y (
  exit
) else (
  goto start
)

你可能感兴趣的:(批处理实现文件复制)