
- Che cos’è ROBOCOPY e perché sceglierlo
- Verificare la disponibilità di ROBOCOPY sul sistema
- Sintassi di base del comando
- Sincronizzare due cartelle: l’opzione /MIR
- Esempi pratici di sincronizzazione
- Opzioni essenziali da conoscere
- Sincronizzazione unidirezionale vs bidirezionale
- Pianificare la sincronizzazione automatica
- Interpretare il risultato di ROBOCOPY
- Migliori pratiche e consigli
- Confronto con alternative
- Conclusione
Come sincronizzare due cartelle con ROBOCOPY
La sincronizzazione dei file è un’esigenza quotidiana per professionisti, amministratori di sistema e utenti avanzati che devono mantenere copie identiche o aggiornate tra due directory. Windows offre uno strumento potente, nativo e gratuito per questo scopo: ROBOCOPY, acronimo di Robust File Copy. Nato come parte del Windows Server 2003 Resource Kit Tools e successivamente integrato nelle versioni moderne di Windows, ROBOCOPY supera di gran lunga il comando COPY tradizionale, offrendo funzionalità avanzate per il copia e la sincronizzazione di grandi volumi di dati con affidabilità e flessibilità eccezionali.
In questa guida completa esploreremo passo dopo come configurare e utilizzare ROBOCOPY per sincronizzare due cartelle, coprendo dalla sintassi base fino alle opzioni più avanzate, con esempi pratici e consigli per scenari reali.
Che cos’è ROBOCOPY e perché sceglierlo
ROBOCOPY è un tool da riga di comando progettato per il trasferimento affidabile di file e directory. A differenza del comando xcopy o copy, ROBOCOPY supporta la ripresa delle copie interrotte, il logging dettagliato, il filtraggio per nome, data, dimensione e attributi dei file, nonché la sincronizzazione bidirezionale.
Ecco i principali vantaggi che lo rendono la scelta ideale:
- Resistenza alle interruzioni: se la copia viene interrotta, può essere ripresa da dove si era fermata senza duplicare i file già trasferiti.
- Gestione dei permessi NTFS: preserva o replica gli ACL (Access Control Lists) e la proprietà dei file.
- Filtraggio avanzato: permette di escludere o includere file per estensione, nome, data di modifica e dimensione.
- Logging completo: genera report dettagliati su ogni operazione eseguita, utili per audit e troubleshooting.
- Multithreading: a partire da Windows 7 e Windows Server 2008 R2, supporta il parallelismo con l’opzione /MT per accelerare le copie di milioni di file piccoli.
- Nessuna installazione richiesta: è già presente in tutte le versioni moderne di Windows.
Verificare la disponibilità di ROBOCOPY sul sistema
Prima di iniziare, assicurati che ROBOCOPY sia disponibile sulla tua macchina. Su Windows 7 e versioni successive, lo strumento è incluso nativamente nel sistema operativo. Per verificare, apri il Prompt dei comandi o PowerShell e digita:
- robocopy /?
Se viene visualizzata la schermata di aiuto con tutte le opzioni disponibili, il comando è pronto all’uso. In caso contrario, su versioni molto vecchie di Windows (XP o precedenti), dovrai scaricare il Windows Server 2003 Resource Kit Tools che include ROBOCOPY.
Sintassi di base del comando
La struttura fondamentale di un comando ROBOCOPY è la seguente:
- robocopy [origine] [destinazione] [filtri] [opzioni]
I tre parametri obbligatori sono:
- [origine]: il percorso della cartella sorgente da cui copiare i file.
- [destinazione]: il percorso della cartella di destinazione dove verranno copiati i file.
- [filtri]: opzionale. Specifica quali file copiare, ad esempio *.txt per solo file di testo o *.* per tutti i file.
Tutto ciò che segue sono le opzioni che modificano il comportamento del comando. Vediamo ora come utilizzarle per la sincronizzazione.
Sincronizzare due cartelle: l’opzione /MIR
L’opzione più potente e comunemente usata per la sincronizzazione è /MIR (Mirror). Questa opzione rende la directory di destinazione una replica esatta della sorgente, eliminando dalla destinazione i file o le cartelle che non esistono più nella sorgente.
Il comando base diventa:
- robocopy “C:\Sorgente” “D:\Destinazione” /MIR
Tuttavia, /MIR è in realtà un’abbreviazione che combina due opzioni: /E e /PURGE. Per comprenderne appieno il funzionamento, è utile conoscerne i componenti:
- /E: copia tutte le sottodirectory, incluse quelle vuote.
- /PURGE: elimina dalla destinazione i file e le cartelle che non esistono più nella sorgente.
Quindi /MIR equivale a eseguire contemporaneamente /E e /PURGE. Questo è fondamentale per capire che la sincronizzazione con /MIR è un’operazione distruttiva verso la destinazione: se elimini un file dalla sorgente, verrà eliminato anche dalla destinazione durante la prossima esecuzione.
Esempi pratici di sincronizzazione
Ecco alcuni scenari comuni con i relativi comandi:
Sincronizzazione base di una cartella
- robocopy “C:\Documenti\Progetti” “E:\Backup\Progetti” /MIR
Questo comando copierà tutti i file e le sottodirectory da Progetti a Backup\Progetti, rendendo la destinazione identica alla sorgente.
Sincronizzazione con esclusione di determinati file
- robocopy “C:\Documenti” “E:\Backup\Documenti” /MIR /XF *.tmp *.log
L’opzione /XF (Exclude File) permette di escludere file specifici per nome o estensione. In questo caso, i file temporanei (.tmp) e i log (.log) non verranno mai copiati.
Sincronizzazione con esclusione di intere cartelle
- robocopy “C:\Documenti” “E:\Backup\Documenti” /MIR /XD “CartellaTemp” “.git”
L’opzione /XD (Exclude Directory) esclude le directory specificate e tutti i loro contenuti dalla copia.
Sincronizzazione parallela per prestazioni elevate
- robocopy “C:\Documenti” “E:\Backup\Documenti” /MIR /MT:16
L’opzione /MT:n avvia n thread di copia in parallelo (da 1 a 128, default 8). Per grandi quantità di file piccoli, questo può accelerare notevolmente il trasferimento. Non usare valori elevati su dischi meccanici tradizionali.
Sincronizzazione con limite di velocità
- robocopy “C:\Documenti” “E:\Backup\Documenti” /MIR /R:2 /W:5 /NP
L’opzione /R:n specifica il numero di ritentativi in caso di errore (default 1 milione). /W:n imposta i secondi di attesa tra un ritentativo e l’altro (default 30). /NP disabilita la visualizzazione della percentuale di progresso, utile per script automatizzati.
Opzioni essenziali da conoscere
Oltre a /MIR, esistono numerose opzioni che rendono ROBOCOPY uno strumento estremamente versatile. Ecco le più importanti:
Gestione degli errori e ritentativi
- /R:n: numero di ritentativi per file falliti (default 1.000.000).
- /W:n: secondi di attesa tra i ritentativi (default 30).
Per una sincronizzazione rapida in ambienti affidabili, puoi ridurre drasticamente questi valori: /R:3 /W:2.
Opzioni di trasferimento
- /Z: avvia la copia in modalità restartable, permettendo di riprendere da dove si era interrotto in caso di caduta della connessione o spegnimento.
- /B: esegue la copia in modalità Backup, utile quando si hanno privilegi di amministratore e si devono copiare file con permessi restrittivi.
- /ZB: combina /Z e /B. Prova prima in modalità restartable; se non è possibile, passa automaticamente alla modalità Backup.
- /FFT: assume una risoluzione temporale FAT (2 secondi) per il confronto delle date dei file. Utile quando si copia tra sistemi con clock diversi.
Opzioni di filtro
- /XF nome: esclude file o cartelle per nome.
- /XD nome: esclude directory e tutti i loro contenuti.
- /MAX:n: copia solo file con dimensione inferiore o uguale a n byte.
- /MIN:n: copia solo file con dimensione maggiore o uguale a n byte.
- /MAXLAD:n: copia solo file modificati almeno n giorni fa (utile per backup di file inattivi).
- /AFTER:gg/mm/aaaa: copia solo i file modificati dopo la data specificata.
Opzioni di attributi e permessi
- /SEC: copia le informazioni di sicurezza (ACL) dei file.
- /COPY:flag: specifica cosa copiare. I flag possibili sono D (Dati), S (Security), A (Attributi), T (Timestampi), O (Proprietà), U (Auditing). Il default è /COPY:DAT.
- /DCOPY:T: copia anche i timestamp delle directory.
Opzioni di logging
- /LOG:file: scrive l’output in un file di log sovrascrivendo il contenuto esistente.
- /LOG+:file: scrive l’output in un file di log aggiungendo al contenuto esistente.
- /NP: nasconde la percentuale di progresso (utile per script e pianificatori).
- /NFL: non registra i nomi dei file nel log.
- /NDL: non registra i nomi delle directory nel log.
Sincronizzazione unidirezionale vs bidirezionale
È importante distinguere tra due modelli di sincronizzazione:
Sincronizzazione unidirezionale (one-way)
I file fluiscono dalla sorgente alla destinazione. La destinazione diventa una copia della sorgente. Se elimini un file nella destinazione, verrà ripristinato alla prossima esecuzione. Se aggiungi un file solo nella destinazione, non verrà copiato nella sorgente.
Comando tipico:
- robocopy “C:\Sorgente” “D:\Destinazione” /MIR
Sincronizzazione bidirezionale (two-way)
I file vengono confrontati e copiati in entrambe le direzioni. Le modifiche apportate in una cartella si riflettono nell’altra. ROBOCOPY non ha un’opzione nativa per la sincronizzazione bidirezionale, ma può essere simulata eseguendo due comandi opposti:
- Esegui robocopy “C:\CartellaA” “D:\CartellaB” /MIR /XF .syncflag
- Esegui robocopy “D:\CartellaB” “C:\CartellaA” /MIR /XF .syncflag
Tuttavia, questo approccio presenta rischi di conflitti se lo stesso file viene modificato in entrambe le directory. Per sincronizzazione bidirezionale affidabile, si consiglia l’uso di strumenti specifici come SyncBack o FreeFileSync.
Pianificare la sincronizzazione automatica
Uno dei punti di forza di ROBOCOPY è la possibilità di automatizzare le sincronizzazioni tramite il Programmatore di Attività di Windows (Task Scheduler). Ecco come procedere:
- Apri il Programmatore di Attività dal Pannello di controllo o digitando taskschd.msc nel menu Start.
- Clicca su “Crea attività” nella colonna a destra.
- Nella scheda Generale, assegna un nome alla sincronizzazione e spunta “Esegui con i privilegi più elevati” se necessario.
- Nella scheda Trigger, definisci la frequenza: giornaliera, settimanale, all’avvio del sistema o in base a eventi specifici.
- Nella scheda Azioni, scegli “Avvia un programma” e inserisci robocopy nel campo “Programma/scrittura”.
- Nei campi “Argomenti”, inserisci il comando completo, ad esempio: “C:\Documenti” “E:\Backup\Documenti” /MIR /LOG+:C:\Log\robocopy.log /NP
- Nella scheda Condizioni, puoi disabilitare l’esecuzione se il computer è in batteria (su laptop) o impostare la riavvio automatico in caso di interruzione.
- Nella scheda Impostazioni, spunta “Consenti l’esecuzione della richiesta in qualsiasi momento” per garantire che la sincronizzazione venga eseguita anche se il trigger scatta mentre il sistema è inattivo.
In alternativa, puoi creare un file batch (.bat) con il comando ROBOCOPY e pianificarlo tramite il Programmatore di Attività o semplicemente inserendolo nella cartella “Avvio” per eseguirlo all’accensione del PC.
Esempio di file batch
Crea un file chiamato sincronizza.bat con il seguente contenuto:
- robocopy “C:\Documenti\Lavoro” “E:\Backup\Lavoro” /MIR /MT:8 /R:3 /W:5 /LOG+:D:\Log\sincronizzazione.log /NP
- exit
Doppio clic sul file per eseguirlo manualmente, oppure pianificalo tramite Task Scheduler.
Interpretare il risultato di ROBOCOPY
Alla fine dell’esecuzione, ROBOCOPY visualizza un riepilogo con codice di uscita. I codici più comuni sono:
- 0: nessun file copiato (nessuna differenza rilevata).
- 1: copia riuscita con file aggiunti o modificati.
- 2: sono stati rilevati file extra nella directory di destinazione che non esistono nella sorgente (con /MIR verranno eliminati).
- 3: combinazione di 1 e 2. File copiati e file extra trovati.
- 4: sono stati riscontrati file incompatibili tra sorgente e destinazione.
- 5: combinazione di 1, 2 e 4.
- 6: combinazione di 2 e 4.
- 7: combinazione di 1, 2 e 4 con errori di copia.
- 8: sono stati riscontrati file incompatibili e errori di copia.
Per gli script automatizzati, il codice più importante è il 1: indica che ci sono state modifiche da replicare. Il codice 0 significa che le cartelle sono già sincronizzate.
Migliori pratiche e consigli
Prima di eseguire una sincronizzazione su larga scala, segui questi consigli per evitare problemi:
- Fai sempre un test con /L: l’opzione /L (List) esegue la sincronizzazione in modalità solo lettura, mostrando cosa verrebbe copiato o eliminato senza modificare effettivamente i file. Usala prima di ogni comando critico.
- Verifica i percorsi: assicurati che i percorsi sorgente e destinazione siano corretti. Un errore di battitura può causare la sovrascrittura di dati importanti.
- Usa virgolette per i percorsi con spazi: se il percorso contiene spazi, racchiudilo sempre tra virgolette doppie.
- Monitora il log: usa /LOG+ per accumulare i log nel tempo e analizzali periodicamente per individuare errori ricorrenti.
- Pianifica negli orari di inattività: le sincronizzazioni possono consumare larghezza di banda e risorse del disco. Esegui gli job durante le ore morte.
- Non usare /MIR su directory condivise in rete: la replicazione su connessioni instabili con /MIR può causare eliminazioni indesiderate. Preferisci /E senza /PURGE per copie di sola andata.
- Testa l’eliminazione prima di applicarla: se usi /PURGE, esegui prima una copia con /L per verificare quali file verrebbero eliminati.
Confronto con alternative
ROBOCOPY non è l’unico strumento disponibile per la sincronizzazione delle cartelle. Ecco un rapido confronto con le alternative più diffuse:
- Rsync: eccellente su Linux e macOS, ma richiede WSL o Cygwin su Windows. Più flessibile nel filtraggio avanzato.
- Robocopy: nativo su Windows, affidabile, perfetto per amministratori di sistema che lavorano in ambienti Microsoft.
- FreeFileSync: interfaccia grafica intuitiva, sincronizzazione bidirezionale nativa, ideale per utenti non tecnici.
- SyncBackFree: strumento grafico con supporto per backup incrementali e pianificazione avanzata.
- Duplicati o Veeam Agent: soluzioni dedicate al backup con deduplicazione e crittografia, più adatte a strategie di disaster recovery che alla semplice sincronizzazione.
La scelta dipende dalle tue esigenze: per ambienti Windows puri e script automatizzati, ROBOCOPY rimane la soluzione più efficiente e leggera. Per utenti che preferiscono un’interfaccia grafica, FreeFileSync o SyncBack sono alternative valide.
Conclusione
ROBOCOPY è uno strumento potente e sottovalutato che, una volta compreso nel suo funzionamento, diventa indispensabile per qualsiasi workflow che coinvolga la gestione di file e directory. La sua capacità di gestire grandi volumi di dati in modo affidabile, con opzioni di filtraggio granulari e supporto all’automazione, lo rende superiore a quasi tutte le alternative native di Windows.
La chiave per un utilizzo efficace sta nella comprensione delle opzioni disponibili e nella sperimentazione preliminare con la modalità /L. Con la pratica, potrai configurare sincronizzazioni personalizzate per ogni scenario, dalla semplice copia di backup alla replica complessa tra più siti, tutto con uno strumento gratuito, nativo e già presente nel tuo sistema.














