Мне неясно, что вы имеете в виду, перемещая тот же файл, который был только что скопирован, но чтобы проверить, существует ли файл, используйте оператор "IF" в пакетном скрипте, как показано ниже. (Я объясню более подробно о% ~ дальше вниз.)
IF EXIST %~dp2%~nx1 (echo file exists) ELSE (
robocopy %~dp1 %~dp2 %~nx1 /XN /XO /MOV>>testing.txt)
Следующее будет работать в Windows 7, Windows 8, Windows Server 2008, Windows Server 2008 R2, Windows Server 2012.
(Для XP вы должны получить его из Resource Kit, но не более 30 дней жизни осталось на этом драгоценном камне :))
Следующий код копирует файл из исходного каталога в целевой каталог, только если конечный файл не существует.
robocopy source_path dest_path filename /XN /XO
И добавление /MOV переместит файл.
Если вы хотите использовать параметры, команда будет выглядеть примерно так:
copyscript.bat C:\Dir1\filename.ext D:\path2\
С copyscript.bat ищет что-то такое:
robocopy %~dp1 %~dp2 %~nx1 /XN /XO
Если вы хотите отправить вывод в журнал, добавьте >> logfile.txt следующим образом:
robocopy %~dp1 %~dp2 %~nx1 /XN /XO>>logfile.txt
Если вы хотите переместить файл вместо копирования, то вот так:
robocopy %~dp1 %~dp2 %~nx1 /XN /XO /MOV
- % ~ dp1 соответствует каталогу и пути первого параметра
- % ~ dp2 соответствует каталогу и пути второго параметра
- % ~ nx1 соответствует имени файла и расширению 1-го параметра
- /XN исключает новые файлы во время копирования
- /XO исключает старые файлы во время копирования
- /MOV MOVES файл вместо простого копирования
добавляет результаты вывода в файл вместо окна cmd (используйте только один>, если вы хотите каждый раз перезаписывать журнал)
- по умолчанию robocopy не перезаписывает файл, если отметки даты и времени совпадают.
Сайт Саймона Шеппарда является хорошим ресурсом для пакетных скриптов, синтаксис для аргументов здесь.
http://ss64.com/nt/syntax-args.html
Информация о робокопии Microsoft находится здесь http://technet.microsoft.com/en-us/library/cc733145.aspx