Я намагався зробити те ж саме з мережевої частки.
SET MoveDirSource=\\Server\Folder
SET MoveDirDestination=Z:\Folder
Ось мої висновки та рішення тестів на машині Windows 7.
Пропозиція:
ROBOCOPY "%MoveDirSource%" "%MoveDirDestination%" /MOVE /E
Проблема: переміщення вихідної папки.
Пропозиція:
ROBOCOPY "%MoveDirSource%" "%MoveDirDestination%" /MOVE /E /XD "%MoveDirSource%"
Проблема: все-таки переміщується папка джерела.
Пропозиція:
ROBOCOPY "%MoveDirSource%" "%MoveDirDestination%" /MOV /E
Проблема: Порожня структура папки залишається позаду у вихідній папці.
Робоче рішення:
MKDIR "%MoveDirDestination%"
FOR %%i IN ("%MoveDirSource%\*") DO MOVE /Y "%%i" "%MoveDirDestination%\%%~nxi"
FOR /D %%i IN ("%MoveDirSource%\*") DO ROBOCOPY /MOVE /E "%%i" "%MoveDirDestination%\%%~nxi"
Перші два рядки переміщують файли верхнього рівня, третій переміщує папки. Зверніть увагу, що подвійний %% призначений для використання у пакетному файлі, для вставки в командний рядок потрібно змінити їх на один відсотковий знак.
~ nxi в пункті призначення - ЗА ВІДМІНУВАННЯ ЗАМОВЛЕННЯ (Див. ЗА /?), де ~ nxi являє собою ім'я та розширення елемента, на який зараз проходить цикл.
Робокопія за замовчуванням RETRY A MILION times та ЗАЧЕКАЙТЕ 30 SECONDS між кожною спробою, тому ви можете додати / R: 1 / W: 1 до аргументів robocopy.