Пакетный файл 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
Другие вопросы по тегам