robocopy
Copia i dati dei file da una posizione a un'altra.
Sintassi
robocopy <source> <destination> [<file>[ ...]] [<options>]
Ad esempio, per copiare un file denominato yearly-report.mov da c:\reports a una condivisione file \\marketing\videos abilitando il multithreading per prestazioni più elevate (con il parametro /mt) e la possibilità di riavviare il trasferimento nel caso in cui venga interrotto (con il parametro /z), digitare:
robocopy c:\reports "\\marketing\videos" yearly-report.mov /mt /z
Importante
Se i dati vengono copiati dalla radice di un dispositivo, la directory di destinazione adotterà l'attributo "nascosto" durante il processo di copia.
Parametri
Parametro | Descrizione |
---|---|
<source> |
Specifica il percorso della directory di origine. |
<destination> |
Specifica il percorso della directory di destinazione. |
<file> |
Specifica il file o i file da copiare. I carattere jolly (* o ?) sono supportati. Se non si specifica questo parametro, *.* viene utilizzato come valore predefinito. |
<options> |
Specifica le opzioni da usare con il comando robocopy, incluse le opzioni di copia, file, tentativi, registrazione e processo. |
Opzioni di copia
Opzione | Descrizione |
---|---|
/s | Copia le sottodirectory. Questa opzione esclude automaticamente le directory vuote. |
/e | Copia le sottodirectory. Questa opzione include automaticamente le directory vuote. |
/lev:<n> |
Copia solo i primi livelli n dell'albero delle directory di origine. |
/z | Copia i file in modalità riavviabile. In modalità riavviabile, in caso di interruzione di una copia di file, robocopy può riprendere la posizione in cui è stata interrotta invece di ricopiare l'intero file. |
/ b | Copia i file in modalità di backup. In modalità di backup robocopy esegue l'override delle impostazioni di autorizzazione per file e cartelle (ACL), che potrebbero altrimenti bloccare l'accesso. |
/zb | Copia i file in modalità riavviabile. Se l'accesso ai file viene negato, passa alla modalità di backup. |
/j | Copia con I/O senza buffer (scelta consigliata per file di grandi dimensioni). |
/efsraw | Copia tutti i file crittografati in modalità RAW EFS. |
/copy:<copyflags> |
Specifica le proprietà del file da copiare. I valori validi per questa opzione sono:
|
/dcopy:<copyflags> |
Specifica cosa copiare nelle directory. I valori validi per questa opzione sono:
|
/sec | Copia i file con sicurezza (equivalente a /copy:DATS). |
/copyall | Copia tutte le informazioni sul file (equivalente a /copy:DATSOU). |
/nocopy | Non copia nessuna informazione sul file (utile con /purge). |
/secfix | Consente di correggere la sicurezza in tutti i file, anche quelli ignorati. |
/timfix | Consente di correggere gli orari in tutti i file, anche quelli ignorati. |
/purge | Elimina i file e le directory di destinazione che non esistono più nell'origine. L'uso di questa opzione con l'opzione /e e una directory di destinazione consente di non sovrascrivere le impostazioni di sicurezza della directory di destinazione. |
/mir | Esegue il mirroraggio di un albero di directory (equivalente a /e più /purge). L'uso di questa opzione con l'opzione /e e una directory di destinazione, sovrascrive le impostazioni di sicurezza della directory di destinazione. |
/mov | Sposta i file ed elimina i file dall'origine dopo la copia. |
/move | Sposta i file e le directory ed elimina i file dall'origine dopo la copia. |
/a+:[RASHCNET] | Aggiunge gli attributi specificati ai file copiati. I valori validi per questa opzione sono:
|
/a-:[RASHCNETO] | Rimuove gli attributi specificati dai file copiati. I valori validi per questa opzione sono:
|
/create | Crea solo un albero di directory e file di lunghezza zero. |
/fat | Crea file di destinazione usando solo nomi di file FAT di lunghezza di 8,3 caratteri. |
/256 | Disattiva il supporto per i percorsi con più di 256 caratteri. |
/mon:<n> |
Esegue il monitoraggio dell'origine e viene eseguito di nuovo quando vengono rilevate più di n modifiche. |
/mot:<m> |
Esegue il monitoraggio dell'origine e viene eseguito di nuovo dopo m minuti se vengono rilevate modifiche. |
/rh:hhmm-hhmm | Specifica i tempi di esecuzione in cui è possibile avviare nuove copie. |
/pf | Controlla i tempi di esecuzione per ogni file (non per passaggio). |
/Ipg:<n> |
Specifica il divario tra pacchetti per liberare la larghezza di banda nelle linee lente. |
/sj | Copia le giunzioni (collegamenti flessibili) nel percorso di destinazione anziché le destinazioni di collegamento. |
/sl | Non seguire i collegamenti simbolici e creare invece una copia del collegamento. |
/mt:<n> |
Crea copie multithread con n thread. n deve essere un valore Integer compreso tra 1 e 128. Il valore predefinito di n è 8. Per prestazioni migliori, reindirizzare l'output usando l'opzione /log. Il parametro /mt non può essere usato con i parametri /ipg e /efsraw. |
/nodcopy | Non copia nessuna informazione sulla directory (operazione predefinita /dcopy:DA). |
/nooffload | Copia i file senza usare il meccanismo di offload copia di Windows. |
/compress | Richiede la compressione di rete durante il trasferimento di file, se applicabile. |
/sparse:<y|n> |
Abilita o disabilita la conservazione dello stato sparse dei file durante il processo di copia. Se non è selezionata alcuna opzione, per impostazione predefinita viene selezionato yes (abilitato). |
/noclone | Non tenta di bloccare la clonazione come ottimizzazione. |
Importante
Quando si usa l'opzione di copia /secfix, specificare il tipo di informazioni di sicurezza da copiare usando una delle opzioni di copia aggiuntive seguenti:
- /copyall
- /copy:o
- /copy:s
- /copy:u
- /sec
Nota
Il parametro /mt è stato introdotto in Windows Server 2008 R2 e la relativa funzionalità si applica alle versioni correnti di Windows Server.
Copiare le opzioni di limitazione dei file
Opzione | Descrizione |
---|---|
/iomaxsize:<n> [kmg] |
Dimensione massima di i/o richiesta per ciclo di lettura/scrittura in n kilobytes, megabyte o igabyte g. |
/iorate:<n> [kmg] |
Velocità di i/o richiesta in n kilobytes megabytes o igabyte alsecondo. |
/threshold:<n> [kmg] |
Soglia delle dimensioni del file per la limitazione in n kilobytes, megabytes o gigabytes (vedere La sezione Osservazioni). |
Queste opzioni di limitazione vengono usate per specificare la larghezza di banda di I/O massima che Robocopy consente di usare in byte al secondo. Se non si specifica in byte al secondo, i numeri interi possono essere utilizzati se vengono specificati k, m o g. La larghezza di banda di I/O minima limitata è 524288 byte anche se viene specificato un valore minore.
Opzioni di selezione file
Opzione | Descrizione |
---|---|
/a | Copia solo i file per i quali è impostato l'attributo Archive. |
/m | Copia solo i file per i quali è impostato l'attributo Archive e reimposta l'attributo Archive . |
/ia:[RASHCNETO] |
Include solo i file per i quali sono impostati gli attributi specificati. I valori validi per questa opzione sono:
|
/xa:[RASHCNETO] |
Esclude solo i file per i quali sono impostati gli attributi specificati. I valori validi per questa opzione sono:
|
/xf <filename>[ ...] |
Esclude i file che corrispondono ai nomi o ai percorsi specificati. I carattere jolly (* e ?) sono supportati. |
/xd <directory>[ ...] |
Esclude le directory che corrispondono ai nomi e ai percorsi specificati. |
/xc | Esclude i file esistenti con lo stesso timestamp, ma dimensioni di file diverse. |
/xn | I file di directory di origine più recenti rispetto alla destinazione vengono esclusi dalla copia. |
/xo | I file della directory di origine precedente a quella di destinazione vengono esclusi dalla copia. |
/xx | Esclude file e directory aggiuntivi presenti nella destinazione, ma non nell'origine. L'esclusione di file aggiuntivi non eliminerà i file dalla destinazione. |
/xl | Esclude file e directory "solitari" presenti nell'origine ma non nella destinazione. L'esclusione di file solitari impedisce l'aggiunta di nuovi file alla destinazione. |
/im | Includere i file modificati (tempi di modifica diversi). |
/is | Include gli stessi file. Gli stessi file sono identici per nome, dimensioni, orario e tutti gli attributi. |
/IT | Include file "modificati". I file modificati hanno lo stesso nome, dimensioni e orario, ma attributi diversi. |
/max:<n> |
Specifica la dimensione massima del file (per escludere file di dimensioni superiori a n byte). |
/min:<n> |
Specifica la dimensione minima del file (per escludere file di dimensioni inferiori a n byte). |
/maxage:<n> |
Specifica la validità massima del file (per escludere i file più vecchi di n giorni o data). |
/minage:<n> |
Specifica la validità minima dei file (escludere i file più recenti di n giorni o data). |
/maxlad:<n> |
Specifica la data massima di accesso (esclude i file inutilizzati da n). |
/minlad:<n> |
Specifica la data minima di accesso (esclude i file usati da n) Se n è minore di 1900, n specifica il numero di giorni. In caso contrario, n specifica una data nel formato AAAAAMMGG. |
/xj | Esclude i punti di giunzione, che vengono normalmente inclusi per impostazione predefinita. |
/fft | Presuppone i tempi dei file FAT (precisione di due secondi). |
/dst | Compensa le differenze di tempo di un'ora DST. |
/xjd | Esclude i punti di giunzione per le directory. |
/xjf | Esclude i punti di giunzione per i file. |
Opzioni di ripetizione dei tentativi
Opzione | Descrizione |
---|---|
/r:<n> |
Specifica il numero di tentativi per le copie non riuscite. Il valore predefinito di n è 1.000.000 (un milione di tentativi). |
/w:<n> |
Specifica il tempo di attesa tra i tentativi, in secondi. Il valore predefinito di n è 30 (tempo di attesa di 30 secondi). |
/reg | Salva i valori specificati nelle opzioni /r e /w come impostazioni predefinite nel registro. |
/tbd | Specifica che il sistema attende che i nomi delle condivisioni vengano definiti (errore di ripetizione del tentativo 67). |
/lfsm | Operare in modalità spazio libero insufficiente che abilita la copia, la sospensione e la ripresa (vedere Osservazioni). |
/lfsm:<n> [kmg] |
Specifica la dimensione del pavimento in n kilobytes, megabytes o gigabytes. |
Opzioni di registrazione
Opzione | Descrizione |
---|---|
/l | Specifica che i file devono essere solamente elencati (e non copiati, eliminati o contrassegnati come timestamp). |
/x | Segnala tutti i file aggiuntivi, non solo quelli selezionati. |
/v | Produce un output dettagliato e mostra tutti i file ignorati. |
/ts | Include i timestamp dei file di origine nell'output. |
/fp | Include i nomi completi dei percorsi dei file nell'output. |
/bytes | Stampa le dimensioni come byte. |
/NS | Specifica che le dimensioni dei file non devono essere registrate. |
/nc | Specifica che le classi dei file non devono essere registrate. |
/nfl | Specifica che i nomi dei file non devono essere registrati. |
/ndl | Specifica che i nomi di directory non devono essere registrati. |
/np | Specifica che lo stato dell'operazione di copia (il numero di file o directory copiati finora) non deve essere visualizzato. |
/eta | Mostra il tempo stimato di arrivo (ETA) dei file copiati. |
/log:<logfile> |
Scrive l'output di stato nel file di log sovrascrivendo il file di log esistente. |
/log+:<logfile> |
Scrive l'output dello stato nel file di registro (aggiunge l'output al file di registro esistente). |
/unilog:<logfile> |
Scrive l'output dello stato nel file di registro come testo Unicode (sovrascrive il file di registro esistente). |
/unilog+:<logfile> |
Scrive l'output dello stato nel file di registro come testo Unicode (aggiunge l'output al file di registro esistente). |
/tee | Scrive l'output dello stato nella finestra della console e nel file di registro. |
/njh | Specifica che non è presente alcuna intestazione del processo. |
/njs | Specifica che non è presente alcun riepilogo del lavoro. |
/unicode | Visualizza l'output dello stato come testo Unicode. |
Opzioni processo
Opzione | Descrizione |
---|---|
/job:<jobname> |
Specifica che i parametri devono essere derivati dal file di processo denominato. Per eseguire /job:jobname , è prima necessario eseguire il parametro /save:jobname per creare il file di processo. |
/save:<jobname> |
Specifica che i parametri devono essere salvati nel file di processo denominato. Questa operazione deve essere eseguita prima di eseguire /job:jobname . Tutte le opzioni di copia, ripetizione e registrazione devono essere specificate prima di questo parametro. |
/quit | Esce dopo l'elaborazione della riga di comando (per visualizzare i parametri). |
/nosd | Indica che non è specificata alcuna directory di origine. |
/nodd | Indica che non è specificata alcuna directory di destinazione. |
/if | Include i file specificati. |
Osservazioni:
L'uso di /PURGE o /MIR nella directory radice del volume ha causato in precedenza l'applicazione dell'operazione richiesta anche ai file all'interno della directory System Volume Information. Questo non è più il caso poiché se viene specificato uno dei due, robocopy salterà qualsiasi file o directory con quel nome nelle directory di origine e di destinazione di livello superiore della sessione di copia.
La classificazione dei file modificati si applica solo quando i file system di origine e di destinazione supportano timestamp di modifica, ad esempio NTFS, e i file di origine e di destinazione hanno tempi di modifica diversi, ma per il resto sono gli stessi. Questi file non vengono copiati per impostazione predefinita. Specificare /IM per includerli.
Il flag /DCOPY:E richiede che venga tentata la copia dell'attributo esteso per le directory. Robocopy continuerà se non è stato possibile copiare le EA di una directory. Questo flag non è incluso in /COPYALL.
Se si specifica /IoMaxSize o /IoRate, robocopy abiliterà la limitazione della limitazione dei file di copia per ridurre il carico di sistema. Entrambi possono essere modificati in valori ottimali e parametri di copia, ma il sistema e robocopy sono autorizzati a modificarli in base ai valori consentiti in funzione delle esigenze.
Se si usa /Threshold, specifica una dimensione minima del file per l'interazione con la limitazione. I file al di sotto di tali dimensioni non verranno limitati. I valori per tutti e tre i parametri possono essere seguiti da un carattere di suffisso facoltativo, ad esempio [KMG] (kilobyte, megabyte, gigabyte).
L'uso di /LFSM richiede robocopy per operare in "modalità spazio libero insufficiente". In questa modalità, robocopy verrà sospeso ogni volta che una copia di file causerebbe l'abbassamento dello spazio libero del volume di destinazione al di sotto di un valore "floor". Questo valore può essere specificato in modo esplicito usando il flag /LFSM:n[KMG].
Se /LFSM viene specificato senza un valore minimo esplicito, la soglia viene impostata sul 10% delle dimensioni del volume di destinazione. La modalità spazio libero insufficiente non è compatibile con /MT e /EFSRAW.
Codici di uscita (restituiti)
Valore | Descrizione |
---|---|
0 | Nessun file copiato. Non è stato rilevato alcun errore. Nessun file non corrispondente. I file esistono già nella directory di destinazione, pertanto, l'operazione di copia è stata ignorata. |
1 | Tutti i file sono stati copiati correttamente. |
2 | Nella directory di destinazione sono presenti alcuni file aggiuntivi che non sono presenti nella directory di origine. Nessun file copiato. |
3 | Alcuni file sono stati copiati. Erano presenti file aggiuntivi. Non è stato rilevato alcun errore. |
5 | Alcuni file sono stati copiati. Alcuni file non corrispondono. Non è stato rilevato alcun errore. |
6 | Esistono file aggiuntivi e file non corrispondenti. Non sono stati copiati file e non sono stati rilevati errori, il che significa che i file esistono già nella directory di destinazione. |
7 | I file sono stati copiati, erano presenti una mancata corrispondenza dei file e file aggiuntivi. |
8 | Diversi file non sono stati copiati. |
Nota
Qualsiasi valore uguale o maggiore di 8 indica che si è verificato almeno un errore durante l'operazione di copia.
Esempi
È consigliabile eseguire il comando robocopy
per creare un file di log che può essere visualizzato al termine del processo per verificarne l'integrità. Negli esempi seguenti, ognuno usa il parametro /LOG:
. Per aggiungere informazioni di log allo stesso file di log, usare invece il parametro /LOG+:
.
Per copiare tutti i file e le sottodirectory, incluse le directory vuote, dalla cartella "Record" alla cartella "Backup" nell'unità "D", digitare quanto segue:
robocopy C:\Users\Admin\Records D:\Backup /E /ZB /LOG:C:\Logs\Backup.log
Per eseguire il mirroring del contenuto della cartella "Record" nella cartella "Backup" nell'unità "D", eliminare tutti i file nella destinazione che non esistono nell'origine con 2 tentativi e attendere 5 secondi tra ogni tentativo, digitare quanto segue:
robocopy C:\Users\Admin\Records D:\Backup /MIR /R:2 /W:5 /LOG:C:\Logs\Backup.log
Per copiare tutti i file e le sottodirectory che non sono vuoti dalla cartella "Record" alla cartella "Backup" nell'unità "D", mantenendo i dati, gli attributi e i timestamp del file con 16 operazioni di copia multithread, digitare quanto segue:
robocopy C:\Users\Admin\Records D:\Backup /S /E /COPY:DAT /MT:16 /LOG:C:\Logs\Backup.log
Per spostare file e sottodirectory, escluse le directory vuote, dalla cartella "Record" alla cartella "Backup" nell'unità "D" ed escludere i file precedenti a 7 giorni, digitare quanto segue:
robocopy C:\Users\Admin\Records D:\Backup /S /MAXAGE:7 /MOV /LOG:C:\Logs\Backup.log
Per copiare tutti i file e le sottodirectory, incluse le directory vuote, dalla cartella "Record" alla cartella "Backup" nell'unità "D" che mostra il tempo stimato per ogni file ed eliminare eventuali file e directory nella destinazione che non esistono dall'origine, digitare quanto segue:
robocopy C:\Users\Admin\Records D:\Backup /ETA /PURGE /LOG:C:\Logs\Backup.log
Per copiare tutti i file e le sottodirectory dalla cartella denominata "Records" nell'unità "C" in una cartella denominata "Backup" nell'unità "D", limitando la velocità di I/O a 1 megabyte al secondo durante l'operazione di copia, digitare quanto segue:
robocopy C:\Records D:\Backup /iorate:1m