我正在使用以下Robocopy命令:
robocopy z:\ c:\Testing\ TestFiles.zip
问题在于,它会继续复制* EXTRA File(*额外文件)下列出的某些文件,但是该文件已在目标位置。
如果文件是新版本(创建日期不同),我只希望robocopy复制文件
仅当TestFiles.zip创建了较新的日期时。
为解决此问题,我尝试使用/ xo表示排除旧文件。没有运气。每隔一分钟执行一次脚本,就会发生这种情况。
答案 0 :(得分:0)
看来您的问题的解决方案可能在这里-> How do I compare timestamps of files in a batch script?
如果我们考虑到这个问题...我们只想在当前文件的时间戳比新的时间戳更旧的情况下执行代码,这就是伪代码的样子,您只需要将其转换为批处理代码。
If current file version is newer then other file version (
robocopy z:\ c:\Testing\ TestFiles.zip
)
答案 1 :(得分:0)
我的建议解决方案如下:
for /F "tokens=1 eol=" %%A IN ('dir /O-N /A-D "C:\Testing\TestFiles.zip" 2^>nul') do (
for /F "tokens=1-3 delims=/" %%B IN ("%%A") do set "dt1=%%D%%C%%B"
)
for /F "tokens=1 eol=" %%E IN ('dir /O-N /A-D "Z:\TestFiles.zip" 2^>nul') do (
for /F "tokens=1-3 delims=/" %%F IN ("%%E") do set "dt2=%%H%%G%%F"
)
if %var1% LSS %var2% (move "Z:\TestingFiles.zip" "C:\Testing")
此代码,搜索所需文件的最后修改日期并进行比较。如果C:\Testing
中的文件较小,则文件TestingFiles.zip
中的文件更多。