批處理命令同步文件夾
發布時間: 2023-12-02 22:13:04
❶ 這個自動同步文件的批處理命令怎麼寫
@echooff&title文件備份及比對工具By依夢琴瑤
::設置A目錄路徑
setA=E:同步
::設置B目錄路徑
setB=S:同步
::設置C目錄路徑
setC=E:冗餘
echo說明:
echo此工具在比對移動時,遇見同名文件,會在新文件名字後加上_yyyymmddhhmmss
echo格式的年月日時分秒。本工具同時會比對文件夾,重命名格式同文件一樣。
echo,
echo日誌文件命名方式為yyyymmddhhmmss.txt格式的年月日時分秒.txt。
echo日誌內容中-^>前面的為原始文件路徑,後面的為最終位置的路徑。
echo,&echo,
Call:GetABFullPath"%A%""%B%""%C%"
ifexist"%SystemRoot%System32choice.exe"gotoc2
echo,&set/pchoice=請按Y鍵開始備份,按其它任意鍵(包括回車鍵)退出,回車確認:
if/i"%choice%"=="Y"gotostart
exit
:c2
echo,&choice/cYN/n/m"按Y鍵開始備份,按N鍵退出:"
iferrorlevel2exit
iferrorlevel1gotostart
exit
:start
setYMD=%date:~,10%
setYMD=%YMD:/=%
setYMD=%YMD:-=%
setHMS=%time:~,8%
setHMS=%HMS:=0%
setHMS=%HMS::=%
echo,&echo正在備份中,請耐心等待。。。
(echo從"%B%"備份到"%A%"中的文件/文件夾:
echo,
x/s/e/y/d/h/f"%B%""%A%")>"%C%\%YMD%%HMS%.txt"
ping127.0.1-n"2">nul
echo,&echo正在比對中,請耐心等待。。。
(echo,&echo,&echo,
echo從"%A%"移動到"%C%"中的文件/文件夾:
echo,
for/f"delims="%%ain('dir/s/b"%A%"')do(
set"str=%%~a"
ifnotexist"!str:%A%=%B%!"(
dir/ad"!str!">nul2>nul&&(
ifexist"!str:%A%=%C%!"set"Ext=_%YMD%%HMS%"
echo"!str!"-^>"!str:%A%=%C%!!Ext!"//文件夾
rd/s/q"!str!"2>nul
md"!str:%A%=%C%!!Ext!"2>nul
)||(
ifexist"!str:%A%=%C%!"set"Ext=_%YMD%%HMS%"
ifdefinedExt(
set"strtmp=%%~dpa"
echo"!str!"-^>"!strtmp:%A%=%C%!%%~na!Ext!%%~xa"
move"!str!""!strtmp:%A%=%C%!%%~na!Ext!%%~xa">nul
)else(
set"strtmp=%%~dpa"
echo"!str!"-^>"!str:%A%=%C%!"
x/s/e/y"!str!""!strtmp:%A%=%C%!">nul
del/f/q"!str!"2>nul
)
)
set"Ext="
set"strtmp="
)
))>>"%C%\%YMD%%HMS%.txt"
echo,&echo此次操作已完成,請按任意鍵退出。
@pause>nul&exit
:GetABFullPath
set"A=%~f1"
set"B=%~f2"
set"C=%~f3"
goto:eof
我的腳本可能不是最完美的,但應該算符合你的基本要求了!希望你喜歡,謝謝!
熱點內容