Почему robocopy постоянно копирует один и тот же файл? - PullRequest
0 голосов
/ 20 марта 2019

Я использую следующую команду Robocopy:

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

Проблема заключается в том, что он продолжает копировать некоторый файл, указанный в разделе * EXTRA File, но этот файл уже находится в месте назначения.

Iхотите, чтобы robocopy копировал файл, только если это более новая версия (дата создания отличается)

Только если TestFiles.zip имеет более новую дату создания.

Чтобы исправить это, я попытался использовать/ xo означает исключение старых файлов.Без удачи.Это то, что происходит каждый раз, когда я запускаю скрипт раз в минуту.

enter image description here

Ответы [ 2 ]

0 голосов
/ 22 марта 2019

Мое предлагаемое решение, как указано в комментариях, выглядит следующим образом:

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 к нему.

0 голосов
/ 20 марта 2019

Похоже, что решение вашей проблемы может быть здесь -> Как сравнить временные метки файлов в пакетном скрипте?

Если мы подумаем над проблемой ... мывыполнять код только в том случае, если временная метка текущего файла новее, чем более старая, поэтому вот как будет выглядеть псевдокод, вам просто нужно перевести его в пакетный код.

If current file version is newer then other file version (
    robocopy z:\ c:\Testing\ TestFiles.zip
)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...