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:
  • D - Dati
  • A - Attributi
  • T - Timestamp
  • X - Ignora flussi di dati alternativi
  • S - elenco di controllo di accesso NTFS (ACL)
  • O - Informazioni sul proprietario
  • U - Informazioni di controllo
Il valore predefinito per l'opzione /COPY è DAT (dati, attributi e timestamp). Il flag X viene ignorato se viene usato /B o /ZB.
/dcopy:<copyflags> Specifica cosa copiare nelle directory. I valori validi per questa opzione sono:
  • D - Dati
  • A - Attributi
  • T - Timestamp
  • E - Attributi estesi
  • X - Ignora flussi di dati alternativi
Il valore predefinito per questa opzione è DA (dati e attributi).
/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:
  • R - Sola lettura
  • A - Archivio
  • S - Sistema
  • H - Nascosto
  • C - Compresso
  • N - Non indicizzato dal contenuto
  • E - Crittografato
  • T - Temporaneo
/a-:[RASHCNETO] Rimuove gli attributi specificati dai file copiati. I valori validi per questa opzione sono:
  • R - Sola lettura
  • A - Archivio
  • S - Sistema
  • H - Nascosto
  • C - Compresso
  • N - Non indicizzato dal contenuto
  • E - Crittografato
  • T - Temporaneo
  • O - Non in linea
/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:
  • R - Sola lettura
  • A - Archivio
  • S - Sistema
  • H - Nascosto
  • C - Compresso
  • N - Non indicizzato dal contenuto
  • E - Crittografato
  • T - Temporaneo
  • O - Non in linea
/xa:[RASHCNETO] Esclude solo i file per i quali sono impostati gli attributi specificati. I valori validi per questa opzione sono:
  • R - Sola lettura
  • A - Archivio
  • S - Sistema
  • H - Nascosto
  • C - Compresso
  • N - Non indicizzato dal contenuto
  • E - Crittografato
  • T - Temporaneo
  • O - Non in linea
/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