Como uso a robocópia com um grande número de arquivos excluídos?

10

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 /xfparâmetro), o robocopy trunca a lista.

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

Resulta 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 alguma forma de contornar isto?

Macaco roxo distorcido
fonte

Respostas:

13

Há um limite no comprimento 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 especificado (usando o /save:filenameargumento) para obter a sintaxe, editar o arquivo para incluir a lista completa e, em seguida, usar o /job:filenameargumento para executá-lo.

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

Falcon Momot
fonte
0

Acontece que a sintaxe do arquivo de trabalho de robocópia não é tão complicada.

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

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

Se você também quiser fazer o mesmo com os arquivos, seu arquivo de trabalho de robocópia ficará assim:

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

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

Usando a mesma lógica, você pode mover quaisquer outras opções da linha de comando para o arquivo de trabalho.

Fara Importanta
fonte
0

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

Tryp
fonte