У меня есть виртуальная машина под управлением 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#Требования