Я отправляю команды на удаленный компьютер, чтобы скопировать файл. Я хочу, чтобы файл был скопирован, но не для того, чтобы перезаписать предыдущий файл с тем же именем (если он существует). Мне также нужна команда для запуска без каких-либо подсказок (xcopy любит запрашивать, указано ли заданное имя, это файл или каталог, а также будет предложено перезаписать файл).
Если XCopy скопирует файл и не перезапишет предыдущий, если он существует (без подсказки)
Ответ 1
Невозможно заставить его НЕ перезаписывать, насколько я знаю. но /Y заставит его перезаписать. и/я избавлюсь от подсказки file/dict. См. xcopy /?
для всех параметров
Ответ 2
У меня хорошие результаты с xcopy /d
.
Он скопирует файлы NEWER, и поскольку мы можем предположить, что существующие файлы имеют одинаковую метку времени, вы скопируете только файлы, которые не существуют.
Ответ 3
на всякий случай, если кто-нибудь найдет это: robocopy x:\source folder Y:\destfolder/s/e/r: 0/z
намного лучше, чем xcopy, даже дает вам таблицу в конце, информирующую о любых неудачных или пропущенных файлах. Не запрашивает перезаписывать.
Ответ 4
Вы также можете использовать команду replace. Он имеет два режима: добавлять файлы, которые там не существуют, или заменить файлы, которые существуют. Вам нужен предыдущий режим:
replace <path1> <path2> /A
Ответ 5
Ну, есть определенное средство! Это помогло мне сэкономить много сил и времени на Win10 во время написания установки для демонстрации нашего продукта.
Просто попробуйте использовать трубопровод:
@ECHO N | COPY / -Y Пункт назначения SourceFiles
В качестве примера я использовал этот фрагмент кода, чтобы у меня была чистая, аккуратная, тихая и безопасная копия!
@FOR /D %%F in ("FooPath") DO @(
@ECHO N|COPY /-Y ^"%%~npdxF\*.*^" ^"GooPath^" 3>NUL 2>NUL >NUL
)
где, очевидно, FooPath является источником, а GooPath является местом назначения.
Наслаждайтесь!
(основной источник: https://ss64.com/nt/copy.html)
Ответ 6
Мне пришлось копировать и переименовывать файлы, поэтому я получил приглашение о создании файла или каталога.
Это, скорее, "хакерский" способ, я сделал это:
ECHO F | XCOPY /D "C:\install\dummy\dummy.pdf" "C:\Archive\fffc810e-f01a-47e8-a000-5903fc56f0ec.pdf"
XCOPY будет использовать "F", чтобы указать, что он должен создать цель как файл:
C:\install>ECHO F | XCOPY /D "C:\install\dummy\dummy.html" "C:\Archive\aa77cd6e-1d19-4eb4-b2a8-3f8fe60daf00.html"
Does C:\Archive\aa77cd6e-1d19-4eb4-b2a8-3f8fe60daf00.html specify a file name or directory name on the target
(F = file, D = directory)? F
C:\install\dummy\dummy.html
1 File(s) copied
Я также проверил, что эта команда оставляет только существующие файлы. (Вы также должны: -)
Ответ 7
Следующая команда копирует файлы и папку, но не переопределяет файл, если он уже существует.
xcopy "*.*" "C:\test\" /s /y /d