为什么robocopy每次都会继续复制同一个文件?

问题描述 投票:0回答:2

我使用以下Robocopy命令:

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

问题是它不断复制* EXTRA文件下列出的某些文件,但此文件已在目标中。

我只想让robocopy复制一个文件,如果它是一个较新的版本(创建日期不同)

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

为了解决这个问题,我尝试使用/ xo意味着排除旧文件。没有运气。每当我每分钟执行一次脚本时,就会发生这种情况。

enter image description here

batch-file robocopy
2个回答
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
)

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

© www.soinside.com 2019 - 2024. All rights reserved.