Как сказать «нет» всем запросам «Вы хотите перезаписать» в копии командного файла? - PullRequest
52 голосов
/ 10 октября 2008

По умолчанию при копировании из командной строки вам будет предложено перезаписать файлы, которые уже существуют в целевом расположении.

Вы можете добавить "/ Y", чтобы сказать "Да для всех" замен.

Но как вы можете сказать «Нет всем»?

Другими словами, я хочу скопировать все из одного каталога, который не уже существует в цели.

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

Ответы [ 14 ]

3 голосов
/ 27 августа 2014

Попробуйте это:

robocopy "source" "destination" /e /b /copyall /xo /it

Скопируйте эту строку в блокнот и сохраните как файл .bat. Запустите файл, и он скопирует все из источника в место назначения. При повторном запуске он не заменит идентичные файлы. при изменении или изменении файла он заменит файл в месте назначения.

проверить это. Я создал файл .txt с несколькими работами, запустил скрипт, изменил формулировку файла .txt и снова запустил скрипт, он заменил только файл изменений из источника.

/e=Copies subdirectories. Note that this option includes empty directories
/b=Copies files in Backup mode
/copyall=Copies all file information
/xo=Excludes older files. (this is what prevents it from copy the same file over and over)
/it=Includes "tweaked" files. (this will allow the copy and replace of modified files)
2 голосов
/ 10 октября 2008

В зависимости от размера и количества копируемых файлов, вы можете скопировать каталог назначения поверх источника сначала с помощью «да для всех», а затем сделать оригинальную копию, которую вы делали, также с установленным «да для всех». Это должно дать вам те же результаты.

0 голосов
/ 16 ноября 2018

Добавление переключателей для подкаталогов и проверки работает просто отлично. эхо н | xcopy / -Y / s / e / v c: \ source *. * c: \ Dest \

0 голосов
/ 29 марта 2016

Мы использовали «robocopy» через «invoke-command», чтобы скопировать огромное количество виртуальных машин в нашей среде. Мы обнаружили, что «robocopy» иногда неожиданно завершается, и весь процесс падает. Поэтому мы решили использовать «xcopy». Теперь мы проверяем его работу и для «создания» опции «Не для всех» используем эту функцию (powershell):

функция gen_long_no ([строка] $ путь) { $ result = ""; Get-ChildItem $ path -Recurse | ? {if ($ _. PSIsContainer -eq $ false) {$ result + = "n"}}; вернуть $ результат }

Может, кому-нибудь поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...