同步源文件到多个目标,但不能解决目录同步问题
目录同步见:
请教如何检测二个文件夹中的文件如有不同或没有就复制
@Echo OFF
::
:: BatName: syncfile.bat
:: Version: 0.1
:: Function: 根据文件修改日期及大小同步文件
::
:: Usage: syncfile sourcefile targetfile
::
:: Code by SpikeKnox 2007.01.29 Knox1@163.com
::
rem Show help
If == (Type "%~f0" | findstr "^::" && Goto :EOF)
If == (Type "%~f0" | findstr "^::" && Goto :EOF)
If NOT EXIST %1 ( Echo Source File %1 NOT EXIST ) & Goto :EOF
:Cmp
If == Goto :EOF
Call :CmpByTimeAndSize %1 %2
If %ERRORLEVEL% EQU 0 (
choice /m "%1 ==> %2"
If %ERRORLEVEL% EQU 0 Copy /y %1 %2
)
Shift /2
Goto :Cmp
Goto :EOF
:CmpByTimeAndSize
If == Goto :EOF
rem %1 varName
Set source=%1
rem %2 value
Set target=%2
If NOT EXIST %target% ( Echo File %target% NOT EXIST & Set /a ERRORLEVEL=0 & Goto :EOF )
For /f "tokens=1,2,3" %%i IN ('dir /T:W %source% ^| findstr "^"') DO Set "sourceTag=%%i %%j" && Set sourceSize=%%k
For /f "tokens=1,2,3" %%i IN ('dir /T:W %target% ^| findstr "^"') DO Set "targetTag=%%i %%j" && Set targetSize=%%k
If "%sourceTag%"=="%targetTag%" ( Set /a ERRORLEVEL=1 ) Else ( Set /a ERRORLEVEL=0 )
If "%sourceSize%"=="%targetSize%" ( Set /a ERRORLEVEL=1 ) Else ( Set /a ERRORLEVEL=0 )