Пакетный файл Windows для копирования файлов допускает переименованное расширение файла, но не копирует дубликаты
Я хочу скопировать файлы из двух каталогов на удаленном компьютере в один каталог на сервере Windows. В одном каталоге у меня есть файлы с расширением *.csv, а в другом *.asc. Диски были сопоставлены с конвенцией UNC, поэтому у нас есть диски, такие как Z:\, которые сопоставлены с определенной папкой на другом компьютере. Сценарии могут находиться на удаленном компьютере или на сервере Windows.
Затем файлы с расширением *.asc обрабатываются, и их необходимо переименовать или переместить в другой каталог (что делает наше программное обеспечение). Файлы с расширением *.csv не изменены
Я попытался использовать Robocopy, и это сработало с переключателем MOVE
c:\scripts\ROBOCOPY.exe z:\ C:\files\Magellan /MOV /NP /R:2 /W:2 *.asc >c:\scripts\synchro.log
Однако исходная программа / программное обеспечение требует, чтобы эти *.asc оставались в исходном местоположении источника, поэтому я не могу использовать переключатель перемещения.
Я не хочу копировать дубликаты *.asc файлов - иначе эти файлы будут обработаны снова.
Поэтому мне нужно только скопировать новые файлы - т.е. файлы, которые не были скопированы ранее, и сравнить их с другим местом, где файл был переименован или перемещен!
2 ответа
@echo off
pushd Z:\
for %%# in (*.csv) do (
echo n|copy /-Y "%%~f#" "C:\files\Magellan\"
)
for %%# in (*.asc) do (
echo n|copy /-Y "%%~f#" "C:\files\Magellan\%%~n#.csv"
)
попробуйте это. Если ваши языковые настройки отличаются от английских, вам может потребоваться изменить echo n
это относится к вашему языку. Не уверен, что это можно сделать с помощью robocopy или xcopy (мне нужно прочитать их справку в деталях). Это будет скопировать / переместить сначала .csv
файлы, а затем .asc
файлы Вы можете изменить порядок и, где это необходимо, вы можете заменить copy
команда с move
Выберите порядок, в котором вы хотите запустить эти строки (и исправьте сопоставленные буквы дисков). Тем не менее, я не уверен, что вы просто хотите скопировать файлы csv и asc в каталог Magellan, поскольку в вашем вопросе упоминается сравнение их в другом месте.
echo n|copy /-y z:\*.csv c:\files\Magellan
echo n|copy /-y y:\*.asc c:\files\Magellan\*.csv