Eu tenho tentado fazer o mesmo de um compartilhamento de rede.
SET MoveDirSource=\Server\Folder
SET MoveDirDestination=Z:\Folder
Aqui estão minhas descobertas e soluções de testes em uma máquina com Windows 7.
Sugestão:
ROBOCOPY "%MoveDirSource%" "%MoveDirDestination%" /MOVE /E
Problema: Move a pasta de origem.
Sugestão:
ROBOCOPY "%MoveDirSource%" "%MoveDirDestination%" /MOVE /E /XD "%MoveDirSource%"
Problema: ainda move a pasta de origem.
Sugestão:
ROBOCOPY "%MoveDirSource%" "%MoveDirDestination%" /MOV /E
Problema: Deixa a estrutura de pastas vazias na pasta de origem.
Solução de trabalho:
MKDIR "%MoveDirDestination%"
FOR %%i IN ("%MoveDirSource%\*") DO MOVE /Y "%%i" "%MoveDirDestination%\%%~nxi"
FOR /D %%i IN ("%MoveDirSource%\*") DO ROBOCOPY /MOVE /E "%%i" "%MoveDirDestination%\%%~nxi"
As duas primeiras linhas movem os arquivos de nível superior, a terceira move as pastas. Observe que o %% duplo é para uso em um arquivo de lote, colando em uma linha de comando que precisa ser alterado para uma marca de porcentagem única.
~ nxi no destino é uma VARIÁVEL DE SUBSTITUIÇÃO PARA (veja FOR /?) onde ~ nxi representa o nome e a extensão do item que está sendo passado em loop.
O Robocopy usa como padrão RETRY A MILHÃO de vezes e ESPERE 30 SEGUNDOS entre cada tentativa, então você pode adicionar / R: 1 / W: 1 aos argumentos do robocopy.