Como uso o robocopy com um grande número de arquivos excluídos?

7

Eu quero usar o robocopy para mover um grande número de arquivos, exceto aqueles que estão em uma lista de permissões. A lista de permissões contém aproximadamente 150 arquivos de nomes diferentes. Quando copio e colo os nomes de arquivos da lista de desbloqueio na linha de comando (usando o parâmetro /xf ), o robocopy trunca a lista.

c:\test> robocopy src dest *.ext /xf exclude1.ext exclude2.ext exclude3.ext ... exclude 299.ext exclude300.ext

Resultados em:

-------------------------------------------------------------------------------
   ROBOCOPY     ::     Robust File Copy for Windows

-------------------------------------------------------------------------------

  Started : Fri May 24 14:09:31 2013

   Source : C:\test\src\
     Dest : C:\test\dest\

    Files : *.ext

Exc Files : exclude1.ext
            exclude2.ext
            exclude3.ext
            ....
            ....
            exclude200.ext
            exclude201.ext
            exclu

e depois:

'exclude250.ext' is not recognized as an internal or external command,
operable program or batch file.
'exclude251.ext' is not recognized as an internal or external command,
operable program or batch file.
'exclude252.ext' is not recognized as an internal or external command,
operable program or batch file.
'exclude253.ext' is not recognized as an internal or external command,
operable program or batch file.

Infelizmente, os arquivos na lista de permissões são escolhidos a dedo e não podem ser filtrados por curingas.

Existe uma maneira de contornar isso?

    
por Fuzzy Purple Monkey 24.05.2013 / 08:29

3 respostas

10

Existe um limite no tamanho da linha de comando (acho que é algo como 2048 caracteres) no Windows.

Você deve gerar um arquivo de trabalho com um pequeno subconjunto da lista de exclusão especificada (usando o argumento /save:filename ) para obter a sintaxe, editar o arquivo para incluir a lista completa e usar o argumento /job:filename para executar isso.

Para referência, a documentação desta ferramenta pode ser encontrada aqui.

    
por 24.05.2013 / 08:40
0

Acontece que a sintaxe do arquivo de trabalho robocopy não é tão complicada.

Para sua situação específica, você pode conseguir o que deseja criando um arquivo de trabalho robocopy com o seguinte conteúdo:

/XD
exclude1.ext
exclude2.ext
exclude3.ext
....

Se você quiser fazer o mesmo com os arquivos, o arquivo de trabalho do robocopy ficará assim:

/XD
exclude1.ext
exclude2.ext
exclude3.ext
....

/XF
file1.ext
file2.ext
file3.ext
....

Usando a mesma lógica, você pode mover qualquer outra opção da linha de comando para o arquivo do trabalho.

    
por 03.11.2016 / 16:12
0

tente usar caracteres curinga após o nome de arquivo / XF1 * .ext nome do arquivo2 * .ext nome do arquivo3 * .ext Isso só funcionará se você souber que o nome do arquivo é único em toda a estrutura. Você pode alterar a convenção de nomenclatura dos arquivos que deseja excluir para contornar essa limitação.

    
por 30.12.2016 / 15:04

Tags