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

<p>по умолчанию при копировании из командной строки вам будет предложено перезаписать файлы, которые уже существуют в целевом расположении.</p><p>вы можете добавить «/ y», чтобы сказать «да для всех» замен.</p><p>но как вы можете сказать «нет всем»?</p><p>другими словами, я хочу скопировать все из одного каталога, в котором <strong>not</strong> уже существует в целевой папке.</p><p>самое близкое, что я вижу, - это аргумент xcopy, который копирует вещи только после определенного времени мода.</p>

<p>если не существует сценария, в котором вы<em> не </em>хотите скопировать существующие файлы в источнике, которые изменились со времени последней копии, почему бы не использовать xcopy с/d без указания даты?</p>

<pre><code>echo "no" | copy/-y c:\source c:\dest\ </code></pre>

<p>вы можете создать текстовый файл с единственной длинной строкой «n», затем запустить свою команду и поставить после нее <nc.txt. я сделал это, чтобы скопировать более 145 000 случаев, когда «нет перезаписи» было то, что я хотел, и это работало нормально таким образом.</p><p>или вы можете просто удерживать клавишу n с чем-то, но это занимает больше времени, чем использование <для передачи в нее.</p>

<p>вот обходной путь. если вы хотите скопировать все из a, которого еще нет в b:</p><p>скопируйте a в новый каталог c . скопируйте b на c, переписав все, что перекрывается с a . скопируйте c на b.</p>

<p>я использую <code>xcopy</code> со следующими параметрами для копирования сборок .net:</p><pre><code>/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. </code></pre>

<p>я знаю, вы все думаете, что/d: date собирается использовать материал для дат, но просто/d без: делает именно то, что мы хотим, чтобы ...</p><pre><code>xcopy {source} {destination} /e /d </code></pre><p>будет копировать без перезаписи, чтобы забрать те файлы, которые являются новыми или, возможно, не удалось раньше по какой-либо причине.</p><p>просто попробуйте, это работает.</p>

<p>я ожидаю, что <a href="http://www.xxcopy.com/index.htm">xxcopy</a> имеет параметр <a href="http://www.xxcopy.com/xxcopy01.htm"></a> для этого.</p><p>бинго:</p><p> <a href="http://www.xxcopy.com/xxcopy27.htm#tag\_231">http://www.xxcopy.com/xxcopy27.htm#tag\_231</a> </p><pre><code>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's sake. /bb selects files that are present in source but not in destination. /u selects files that are present in both source and destination. </code></pre><p>-адам</p>

<p>это отлично работает</p><pre><code>no | cp -rf c:\source c:\dest\ </code></pre>

<p>попробуй это:</p><pre><code>robocopy "source" "destination" /e /b /copyall /xo /it </code></pre><p>скопируйте эту строку в блокнот и сохраните как файл .bat. запустите файл, и он скопирует все из источника в место назначения. при повторном запуске он не заменит идентичные файлы. при изменении или изменении файла он заменит файл в месте назначения.</p><p>проверить это. я создал файл .txt с несколькими работами, запустил скрипт, изменил формулировку файла .txt и снова запустил скрипт, он заменил только файл изменений из источника. </p><pre><code>/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) </code></pre>

<p>спасибо за это. я использую утилиту командной строки azcopy (v 3.1.0.93) для перемещения ~ 1 миллиона файлов с локального пк в хранилище blob-объектов azure. у меня есть несколько дубликатов, и я не могу присматривать за копией, чтобы ответить на каждый запрос, и не хочу повторно загружать один и тот же файл.</p><p>утилита azcopy предлагает команду/y для подавления запросов на подтверждение, но в итоге говорит перезаписать файл назначения. пройдя по этому маршруту, я смог получить его, чтобы не перезагружать файл. тем не менее, это выглядит как хак, поскольку на самом деле он не отвечает на запрос «нет», вместо этого я получаю сообщение об ошибке «не получено никакого ввода, когда пользователю необходимо сделать выбор из нескольких заданных опций». но не загружает файл.</p><p>вот команда, которую я использовал: echo n | azcopy/source: "{путь к файлу}"/dest: "{url хранилища blob-объектов}"/destkey: {ключ}</p><p>надеюсь, это поможет следующему парню.</p>

<p>эхо n | copy/-y $ (solutiondir) somedir $ (outdir)</p>

<p>в зависимости от размера и количества копируемых файлов, вы можете сначала скопировать каталог назначения через источник с «да для всех», а затем сделать оригинальную копию, которую вы делали, также с «да для всех». это должно дать вам те же результаты.</p>

<p>мы использовали «robocopy» через «invoke-command», чтобы скопировать огромное количество виртуальных машин в нашей среде. мы обнаружили, что «robocopy» иногда неожиданно завершается, и весь процесс падает. поэтому мы решили использовать «xcopy». теперь мы проверяем его работу и для опции «создать» «не для всех» используем эту функцию (powershell):</p><p>функция gen\_long\_no ([строка] $ путь) { $ result = ""; get-childitem $ path -recurse | ? {if ($ \_. psiscontainer -eq $ false) {$ result + = "n"}}; вернуть $ результат }</p><p>может быть, помогает кому-то.</p>

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