Я хотел бы использовать xcopy
для перемещения, а не копировать файлы по сети с флагом проверки. Я не смог найти переключатель на xcopy для перемещения файлов. xmove
Могу ли я использовать его verify
?
В настоящее время я использую, xcopy /D /V
но мне нужно избавиться от файлов в источнике, только когда он проверен, файл был успешно скопирован в место назначения.
/v
не гарантирует, что файл был правильно записан: кэши диска и ОС означают, что файл в кэше записи будет извлечен оттуда до его успешной фиксации. Единственный безопасный вариант - сделать копию и запланировать проверку и удаление в будущем. Эвристически я бы сказал, что 5 минут будет достаточно, но нет строгого и быстрого правила: это зависит от активности диска и размера кэшей (я говорю как тот, кто столкнулся с ошибками записи в кэше).Ответы:
Вы должны проверить
robocopy
, это гораздо мощнее, чемxcopy
. Вы можете легко перемещать файлы с помощью/MOV
или/MOVE
.Переместить только файлы (удалить из источника после копирования)
Для перемещения файлов и каталогов (удалить из источника после копирования)
http://ss64.com/nt/robocopy.html
источник
verify
насколько я вижу./MOVE : Move files and dirs (delete from source after copying)
. Если он не копирует, он не удалит источник.verify
. В информации о robocopy я не вижу ничего, что на самом деле проверяет два размера файлов, чтобы убедиться, что они не просто перемещены, а перемещены правильно.Вы можете использовать командный файл для запуска
Xcopy
команды с помощью команды verify, а затем проверить уровень ошибок, возвращаемый Xcopy, чтобы определить, успешно скопированы файлы или нет. Если они сделали, удалите источник.Из документации Xcopy :
Пример партии:
источник
errorlevel
еще работать , если я делаю:dir args && xcopy args >> logfile.txt
? Или будетerrorlevel
результатомdir
?if errorlevel 0
ВСЕГДА срабатывает. Потому что это действительно проверка,if errorlevel >= 0
поэтому вы должны вместо этого проверить случай ошибкиif errorlevel 1 ( ... failure case ... ) else ( ... success case ... )
. Или, если вы предпочитаете стильif not errorlevel 0 (... success case ... )
Или, если вы предпочитаете стильif %ERRORLEVEL% EQU 0 ( ... success case ... )