Estou tentando executar um /MOVE
comando robocopy, mas excluo alguns subdiretórios especificados com o /XD
sinalizador.
robocopy ".\CurrentDir" ".\NewDir" /XD ".\CurrentDir\SubDir1" ".\CurrentDir\SubDir2" /E /MOVE
Infelizmente, ignora a /XD
opção e move tudo. Se eu usar um caminho absoluto em tudo, funcionará bem, mas preciso que seja flexível. Existe alguma maneira de fazê-lo funcionar com caminhos relativos?
%CD%
variável de ambiente. Exemplo:robocopy ".\CurrentDir" ".\NewDir" /XD "%CD%\CurrentDir\SubDir1" "%CD%\CurrentDir\SubDir2" /E /MOVE
Respostas:
As pastas especificadas
/XD
referem-se às pastas (a serem excluídas) existentes na pasta de origem; portanto, você especifica apenas os nomes de pastas que deseja excluir, sem especificar uma relação pai.ou seja:
fonte
O seguinte pode ajudar - ele resolve o problema do caminho relativo diretamente - mas permite muitos diretórios e subdiretórios de exclusão.
Se você apenas excluir pastas de nível superior - use o nome da pasta - exemplo APC. No entanto, se você estiver criando uma subpasta - precisará do caminho inteiro. O caminho deve corresponder totalmente ao caminho de origem + caminho até a subpasta. Eu testei de várias maneiras diferentes e essa é a única maneira de fazê-la funcionar. Esse formato de arquivo em lote / cmd também permite espaços no caminho ou nos nomes dos arquivos.
fonte