Перемещение файлов между компьютерами с помощью командной строки (Windows)

Перемещение файлов между компьютерами с помощью командной строки (Windows)

У меня есть виртуальная машина под управлением XP, на которой файлы загружаются в случайные моменты. Мне нужен скрипт или утилита, подходящая для командной строки, которая будет запускаться каждые X минут (например) иДВИГАТЬСЯвсе загруженные файлы в общую папку на компьютере с ОС Win7.

Теперь moveкоманда командной строки не работает на всех дисках, и тем более на всех общих папках. (И выдает очень полезное сообщение Access denied.)

Я мог бы сделать

copy src desr_share
rm src

...но вот в чем сложность:

При запуске команды копирования может случиться так, что файл будет загружен одновременно. Он copyможет загрузить только часть файла или полностью пропустить его и продолжить, но позже, когда сработает rm, файл может быть полностью загружен, и он rmбудет стерт, не будучи должным образом скопированным в место назначения.

Поэтому мне нужно что-то, что имеет moveсемантику (копирование файла и удаление его только в случае успеха), но при этом будет работать на разных машинах.

Какие-либо предложения?

PS. Я не против, если файл будет перемещен только частично, если только он не будет удален. Я принудительно перезапишу все файлы назначения, и при следующем запуске файл будет загружен снова, полностью.

решение1

Обратите внимание на Robocopy, который входит в стандартную комплектацию Win7 и доступен в комплекте разработчика Microsoft для XP.

используйте robocopy /?(или robocopy /? > drive:\path\robocopy_options.txt) для опций.

Windows 7:

http://technet.microsoft.com/en-us/library/cc733145%28v=ws.10%29.aspx

Windows XP:

http://www.microsoft.com/en-us/download/details.aspx?id=17657#Требования

Связанный контент