为什么robocopy每次都会不断复制相同的文件?

时间:2019-03-20 13:39:58

标签: batch-file robocopy

我正在使用以下Robocopy命令:

robocopy z:\ c:\Testing\ TestFiles.zip

问题在于,它会继续复制* EXTRA File(*额外文件)下列出的某些文件,但是该文件已在目标位置。

如果文件是新版本(创建日期不同),我只希望robocopy复制文件

仅当TestFiles.zip创建了较新的日期时。

为解决此问题,我尝试使用/ xo表示排除旧文件。没有运气。每隔一分钟执行一次脚本,就会发生这种情况。

enter image description here

2 个答案:

答案 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中的文件更多。