Как сказать "нет" всем запросам "вы хотите перезаписать" в копии пакетного файла?

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

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

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

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

Ближайшая вещь, которую я вижу, - это аргумент XCOPY для копирования только после определенного времени mod-datetime.

Ответ 1

Если нет сценария, в котором вы не хотите копировать существующие файлы в источнике, который был изменен с момента последней копии, почему бы не использовать XCOPY с /D без указания даты?

Ответ 2

echo "No" | copy/-Y c:\source c:\Dest\

Ответ 3

Вы можете сделать текстовый файл с одной длинной строкой "n", а затем запустить свою команду и поместить < nc.txt после него. Я сделал это, чтобы скопировать более 145 000 экземпляров, где "No overwrite" было тем, что я хотел, и он отлично срабатывал таким образом.

Или вы можете просто удерживать клавишу n с чем-то, но это занимает больше времени, чем использование < для его прокладки.

Ответ 4

Вот обходной путь. Если вы хотите скопировать все из A, которое еще не существует в B:

Скопировать A в новый каталог C. Скопируйте B в C, перезаписав все, что накладывается на A. Скопируйте C в B.

Ответ 5

Я использую XCOPY со следующими параметрами для копирования .NET-сборок:

/D /Y /R /H 

/D:m-d-y - Copies files changed on or after the specified date. If no date is given, copies only those files whose source time is newer than the destination time.

/Y - Suppresses prompting to confirm you want to overwrite an existing destination file.

/R - Overwrites read-only files.

/H - Copies hidden and system files also.

Ответ 6

Я знаю, что вы все думаете /D: дата будет использовать материал даты, но просто /D без: делает именно то, что мы хотим...

xcopy {Source} {Destination} /E /D 

Скопирует без перезаписывания, чтобы забрать те файлы, которые являются новыми или, возможно, не сработали раньше по какой-либо причине.

Просто попробуй, он работает.

Ответ 7

Я ожидаю, что xxcopy имеет параметр для что.

Бинго:

http://www.xxcopy.com/xxcopy27.htm#tag_231

2.3   By comparison with the file in destination

    The switches in this group select files based on the
    comparison between the files in the source and those in
    the destination.  They are often used for periodic backup
    and directory synchronization purposes. These switches
    were originally created as variations of directory backup.
    They are also convenient for selecting files for deletion.

2.3.1  by Presence/Absence

    The /BB and /U switches are the two switches which select
    files by the pure presence or absence as the criteria.
    Other switches in the this group (Group 2.3) are also
    affected by the file in the destination, but for a
    particular characteristics for comparison sake.

    /BB  Selects files that are present in source but not in destination.
    /U   Selects files that are present in both source and destination.

-Adam

Ответ 8

это прекрасно работает

no | cp -rf c:\source c:\Dest\

Ответ 9

эхо N | copy/-y $(SolutionDir) SomeDir $(OutDir)

Ответ 10

Попробуйте следующее:

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

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

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

/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)

Ответ 11

Спасибо за это. Я использую утилиту командной строки AzCopy (v 3.1.0.93), чтобы переместить ~ 1 миллион файлов с моего локального ПК в хранилище Azure blob. У меня есть несколько дубликатов и не могу присматривать за копией, чтобы отвечать на каждое приглашение и не хочу повторно загружать тот же файл.

Утилита AzCopy предлагает команду /Y для подавления подсказок подтверждения, но заканчивает тем, что она перезаписывает файл назначения. Идя по этому маршруту, я смог получить его, чтобы НЕ повторно загрузить файл. Тем не менее, это похоже на хак, поскольку на самом деле он не отвечает на приглашение "Нет", вместо этого я получаю сообщение об ошибке "Нет ввода, когда пользователю нужно сделать выбор между несколькими заданными параметрами". но не загружает файл.

Вот команда, которую я использовал: echo n | AzCopy/Источник: "{путь к файлу}" /Dest: "{URL-адрес памяти blob}" /DestKey: {key}

Надеюсь, это поможет следующему парню.

Ответ 12

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

Ответ 13

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

function gen_long_no ([string] $path) {   $ result = "; Get-ChildItem $path -Recurse |? {if ($ _. PSIsContainer -eq $false) {$ result + =" n"}};   return $result }

Может кому-то помочь.

Ответ 14

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