我使用以下Robocopy命令:
robocopy z:\ c:\Testing\ TestFiles.zip
问题是它不断复制* EXTRA文件下列出的某些文件,但此文件已在目标中。
我只想让robocopy复制一个文件,如果它是一个较新的版本(创建日期不同)
仅当TestFiles.zip创建了更新的日期时。
为了解决这个问题,我尝试使用/ xo意味着排除旧文件。没有运气。每当我每分钟执行一次脚本时,就会发生这种情况。
看起来您的问题的解决方案可能在这里 - > 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
)
我在评论中提到的建议解决方案如下:
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
。