Come posso usare robocopy con un gran numero di file esclusi?


10

Voglio usare robocopy per spostare un gran numero di file, ad eccezione di quelli che sono in una lista bianca. La whitelist contiene circa 150 file con nomi diversi. Quando copio e incollo i nomi dei file della whitelist nella riga di comando (usando il /xfparametro), robocopy tronca l'elenco.

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

Risultati in:

-------------------------------------------------------------------------------
   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 poi:

'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.

Purtroppo i file nella whitelist vengono selezionati manualmente e non possono essere filtrati da caratteri jolly.

C'è un modo per aggirare questo?

Risposte:


13

C'è un limite alla lunghezza della riga di comando (penso che sia qualcosa come 2048 caratteri) in Windows.

È necessario generare un file di lavoro con un piccolo sottoinsieme dell'elenco di esclusione specificato (utilizzando l' /save:filenameargomento) per ottenere la sintassi, modificare il file per includere l'elenco completo, quindi utilizzare l' /job:filenameargomento per eseguirlo.

Per riferimento, la documentazione per questo strumento è disponibile qui.


0

Si scopre che la sintassi del file di lavoro robocopy non è così complicata.

Per la tua situazione specifica puoi ottenere ciò che desideri creando un file di lavoro robocopy con il seguente contenuto:

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

Se vuoi fare lo stesso anche per i file, il tuo file di lavoro robocopy sarebbe simile al seguente:

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

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

Utilizzando la stessa logica è possibile spostare qualsiasi altra opzione dalla riga di comando al file di lavoro.


0

prova a utilizzare i caratteri jolly dopo il nome file / XF1 * .ext nomefile2 * .ext nomefile3 * .ext Funzionerà solo se sai che il nome file è univoco nell'intera struttura. È possibile modificare la convenzione di denominazione dei file che si desidera escludere per aggirare questa limitazione.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.