MXB Informatica

Web & Computer

Come sincronizzare la chiavetta USB con il PC in pochi click

05/11/2018, 20:19

Tanti anni fa comprai una delle prime chiavette USB da 32 GB uscite sul mercato. Ricordo ancora di averla pagata una sessantina di euro, e li valeva tutti perché ad oggi non ha mai perso un colpo, anche se l’esterno è così consumato da non poter leggere più neanche la marca. Da più di un quinquennio questa chiavetta fa il suo dovere, pare indistruttibile, ma sappiamo tutti che prima o poi il nostro mini-archivio portatile ci tradirà. E per questo motivo tutti noi abbiamo una copia di sicurezza del contenuto della chiavetta sul PC, mi auguro.

Per fare il backup di file e cartelle su Windows ci sono programmi appositi, come l’ottimo e gratuito Comodo Backup (scaricabile QUI), o i prodotti Acronis, a pagamento ma piuttosto affidabili.

Spesso però ci si porta dietro i documenti importanti, alcuni programmi o gli mp3 preferiti, e a volte capita di inserire nuovi file, o modificarne altri. Questo può succedere con la USB quando si è in ufficio, o a casa di un amico o di un collega, oppure a casa nostra, dove lavoriamo direttamente con i file salvati sul PC, senza inserire la chiavetta. Ogni volta che apportiamo modifiche all’uno o all’altro supporto, poi ci tocca allinearli, ricordandoci cosa abbiamo aggiunto o aggiornato e dove. E non sempre è così semplice …

Come fare a capire cosa è aggiornato sulla USB e cosa invece è più nuovo sul PC? Come essere sicuri di non perdere nessun appunto, di non sostituire il file aggiornato con quello vecchio? Insomma come fare a sincronizzare chiavetta USB e PC rendendole perfettamente identiche ed aggiornate?

Ecco che ci viene in aiuto un vecchio programma, potente quanto famoso, che si usa sin dai tempi del vecchio  Dos:  XCOPY, insieme ad un’interfaccia molto particolare:  Datalign.

XCOPY

Questo programma, esistente anche su Windows, serve a copiare file e cartelle da una destinazione e l’altra, con una serie di comode opzioni per decidere quali file copiare, se creare le cartelle, se copiare anche i file nascosti, eccetera.

Ed è quindi in grado di copiare e sovrascrivere solo i file con la data più recente, cosa che fa proprio al caso nostro.

XCOPY funziona con la riga di comando dal Prompt dei comandi: quella finestrella stile Dos che appare scrivendo “cmd” nella finestra Esegui di Windows (tasti [Windows] + [R]), o cliccando su “cmd.exe” dopo aver scritto “cmd” nel campo di ricerca del menù Start.

Una volta avviato il prompt dei comandi, digitiamo:
xcopy /?
per ottenere l’aiuto in linea e l’elenco dei parametri.

Per copiare il contenuto di una cartella su un altro supporto, o in un’altra cartella, e aggiornare solo i file più vecchi, creando eventualmente cartelle e file inesistenti nella destinazione, ci basta usare l’opzione /D /E. Ad esempio:

  • apriamo Gestione Risorse (tasti [Windows] + [E]), entriamo nel disco C: e creiamo la cartella prova (tasto destro > nuova cartella)
  • facciamo doppio click sulla cartella prova e creiamo due ulteriori sottocartelle: uno e due
  • entriamo nella cartella uno e creiamo la sottocartella gennaio
  • ora entriamo nella cartella C:\prova\uno e copiamoci dentro dei file a caso dal desktop o dai documenti; copiamo un file anche dentro la cartella gennaio
  • apriamo il prompt dei comandi ([Windows] + [R] > “cmd”) e digitiamo:
    xcopy.exe "C:\prova\uno" "C:\prova\due" /D /E
  • osserviamo XCOPY al lavoro e poi esploriamo la cartella due con Gestione Risorse: troveremo i file della cartella uno nella cartella due, compresa la sottocartella gennaio con i suoi file.

Come si può vedere dall’immagine, XCOPY ha copiato tutti i file e le cartelle che ha trovato perché la cartella di destinazione era vuota. Ma se ora ripetessimo lo stesso comando:
xcopy.exe "C:\prova\uno" "C:\prova\due" /D /E
XCOPY non copierebbe nessun file, perché il parametro /D gli dice di sovrascrivere solo i file più vecchi.

Abbiamo copiato cartelle e sottocartelle e confrontato le date dei file con un’unica operazione: fantastico !

Datalign: xcopy interface

XCOPY è potente ma manca di interfaccia grafica e di funzioni dedicate all’allineamento bidirezionale. Niente paura, Datalign fa proprio questo.

Con Datalign basta impostare le due cartelle, scegliere se fare la copia in una direzione piuttosto che in un’altra, o anche in modo bidirezionale (prima da A a B, poi da B ad A), selezionare le opzioni e premere [Esegui]. Tutto qui: l’operazione terminerà con il report delle operazioni aperto con Blocco Note, e il nostro allineamento bello che fatto !

Inoltre Datalign è in grado di impostare i permessi di lettura e scrittura di file e cartelle usando il comando ICACLS: potremo quindi creare una chiavetta USB con una cartella non cancellabile, se non con una formattazione !

Per installare Datalign

Utilizzare Datalign

Usare questo programma è piuttosto semplice. Mettiamo di avere i nostri dati “portatili” nella chiavetta, dentro la cartella “K:\Miei Documenti“, e di averli anche sul PC nella cartella “C:\Users\Max\Documenti\Doc-chiavetta“:

  • inseriamo la chiavetta in una porta USB. La prima volta Windows assegna una lettera di unità ad una nuova chiavetta, mentre le volte successive la riconosce e tenterà di assegnarle la stessa lettera, se possibile.
  • eseguiamo Datalign cliccando sul link creato in precedenza
  • nel campo Cartella A clicchiamo su [Seleziona] e selezioniamo la cartella "Miei Documenti" dentro la chiavetta K:
  • ora clicchiamo su [Seleziona] a destra, nel riquadro Cartella B e selezioniamo la cartella "C:\Users\Max\Documenti\Doc-chiavetta"
  • è anche possibile copiare l’indirizzo da Gestione Risorse e incollarlo nei due campi, o scriverlo a mano
  • ora clicchiamo sul pulsantone centrale per definire la modalità di copia: [A > B], [A < B] oppure bidirezionale: [A<>B]. Scegliamo quest’ultimo, così le due cartelle si allineeranno “scambiandosi” tra loro i file aggiornati o nuovi
  • osservando le opzioni per capirne il significato, lasciamo quelle di default così verranno sostituiti solo i file vecchi, create le cartelle, anche se vuote, e sovrascritti i file senza conferma
  • nel riquadro sotto, ad ogni nostra azione verranno aggiornate le righe di comando: qui possiamo anche aggiungere delle opzioni di XCOPY a mano e addirittura inserire righe nuove, creando un vero e proprio batch file con comandi Dos
  • premiamo [Esegui] per procedere con l’allineamento: si aprirà un prompt dei comandi dove potremo vedere XCOPY all’opera, e alla fine anche il Notepad con il report dell’operazione.

Durante l’operazione di allineamento, se la quantità di file è grande, il log a video potrebbe anche apparire in ritardo, facendo sembrare bloccata l’operazione; in realtà XCOPY continuerà a lavorare e in breve tempo porterà a termine l’operazione aprendo il log file.

Opzioni "blocca/sblocca cartelle"

Datalign consente anche di operare anche sui permessi di cartelle e file. 

L'opzione "Blocca/sblocca cartelle" permette di aggiungere al comando batch le istruzioni per impostare i permessi di lettura e scrittura delle cartelle A e/o B.

Le opzioni sono molto semplici e si limitano a decidere su quale cartella agire (cartella A e/o B), se negare o consentire le operazioni di lettura e scrittura e quale delle due operazioni effettuate.

Selezionando le varie opzioni apparirà il comando nel riquadro "comando batch": il programma Dos usato è ICACLS.

Selezionando l'opzione "Disabilita XCopy", il comando batch si limiterà ad eseguire la modifica dei permessi, senza fare l'allineamento delle 2 cartelle.

NOTA: i permessi utente possono essere impostato solo su dischi formattati in NTFS. Per impostare i permessi di cartelle su una chiavetta USB, formattala in NTFS prima !
 

Batch Editor

Premendo il pulsante giallo in alto si aprirà il batch editor, dove è possibile collezionare una serie di comandi batch da eseguire tutti insieme, o salvarli in un file batch (con estensione .BAT) da eseguire con il doppio click, senza più aprire Datalign.

Il pulsante "Aggiungi a batch" nella finestra principale permette di aggiungere il testo nel riquadro "comandi batch" al batch editor.

Nell'editor, usa i pulsanti in basso per ripristinare il contenuto dell'editor all'ultimo salvataggio (esecuzione o chiusura dell'editor), salvare il batch in un file, aprire un file batch ed eseguire i comandi.
 

Perchè usare il batch editor ?

Ho almeno un paio di motivi per consigliarne l'utilizzo :-D

  1. possiamo creare un batch che faccia la copia di più cartelle differenti in una o più chiavette o hard disk
  2. possiamo creare un batch file da mettere sul desktop e usare quando vogliamo, se non addirittura inserirlo nella cartella di avvio di Windows in modo da farlo partire ogni volta che accendiamo il computer.

Ad esempio, volendo copiare periodicamente i propri documenti su una chiavetta, e aggiornare sulla stessa anche le compilation mp3 che abbiamo sul computer, potremmo crearci un file .BAT da eseguire dal desktop con un semplice doppio click. Se infine vogliamo che i documenti sulla chiavetta sono siano modificabili o cancellabili, possiamo anche aggiungere i comandi che modificano i permessi prima di copiare i file sulla chiavetta.

Ecco come potremmo fare:

  • nella finestra principale, impostiamo la cartella A selezionando la nostra cartella "Documenti"
  • impostiamo ora la Cartella B selezionando la nostra chiavetta, e la cartellina dove vogliamo copiare i documenti
  • clicchiamo infine sul pulsantone centrale finché non esce l'opzione [A<>B]. In questo modo la copia avverrà nelle 2 direzioni, per far sì che se nella chiavetta c'è qualche file aggiornato o nuovo, questo verrà copiato nella cartella documenti del PC, allineando in pratica le 2 cartelle
  • ora nel riquadro "Opzioni xcopy" selezioniamo le opzioni /D, /H, /E, /Y in modo da sovrascrivere solo i file più vecchi e di creare eventuali sottocartelle
  • a questo punto vedremo il codice nel riquadro in basso: saranno 2 righe che iniziano con "xcopy"
  • premiamo il pulsante [Aggiungi a batch]
  • si aprirà la finestra del batch editor con il codice creato
  • passiamo ai permessi di modifica dei file nella chiavetta: torniamo nella finestra principale e clicchiamo sul riquadro "blocca/sblocca cartelle", selezioniamo l'opzione "Cartella B" per dire al programma che vogliamo agire solo nella cartellina sulla chiavetta
  • selezioniamo anche "Blocca cartelle" e "Scrittura/cancellazione" in modo da rendere i file non modificabili. Infine, l'opzione "Disabilita xcopy" deve essere selezionata in modo da produrre solo le 2 righe di codice che iniziano con "icacls"
  • nel riquadro del codice ora vedremo quindi le 2 righe di comando, che iniziano con "icacls"
  • è il momento di premere il pulsante giallo "Aggiungi a batch"
  • si aprirà la finestra del batch editor con il codice creato
  • i comandi "icacls" sono successivi ai comandi xcopy in modo che il comando icacls possa agire sui file appena copiati nella chiavetta per renderli non modificabili
  • torniamo nella finestra principale per impostare anche la copia dei file mp3
  • impostiamo solo la copia da A a B (pulsantone centrale: [A>B])
  • impostiamo la Cartella A selezionando la cartella mp3 sul computer
  • Cartella B -> selezionare la cartella mp3 sulla chiavetta
  • nel riquadro "blocca/sblocca cartelle" deselezioniamo le 2 cartelle A e B per far sparire le righe di codice relative
  • clicchiamo su "Opzioni xcopy" e selezioniamo/deselezioniamo eventualmente le opzioni desiderate
  • infine premiamo sul pulsante "Aggiungi a batch" per veder apparire anche il nuovo comando di xcopy nel batch editor

Per testare il batch, clicchiamo su [execute], per salvarlo usiamo [Salva batch]. Salviamo il batch sul desktop e facciamo doppio click per eseguirlo. 

Personalizzazione del batch

Innanzi tutto, Datalign aggiunge al batch una serie di comandi per poter creare il log file, quindi per una personalizzazione approfondita del batch, o si preleva il codice creato da Datalign nel batch editor e lo si modifica nel notepad, oppure si va a modificare direttamente il file salvato con l'editor, in modo da poter intervenire direttamente sul codice finale.

Ma noi avremo bisogno di una modifica semplicissima, che potremo includere nell'editor sicuri che funzionerà anche nel file batch salvato

In definitiva è possibile inserire delle righe di codice nel batch file, come ad esempio il comando "pause" in modo che quando questo finisce di lavorare resta aperto in attesa di una nostra presa visione. Per farlo, è sufficiente portarsi alla fine dell'ultimo comando, premere [Invio] per andare a capo e digitare:

pause


Se volessimo creare un batch che copia i documenti di qualsiasi computer con Windows sulla nostra chiavetta potremmo modificare la riga di xcopy utilizzando la variabile di ambiente di Windows che consente di raggiungere la cartella utente senza conoscerne il percorso:

%userprofile%

Ad esempio, il comando:

xcopy.exe "E:\Users\Max\Documents" "F:\CHIAVETTA\DOCS" /I /D /E /Y

diventerebbe:

xcopy.exe "%userprofile%\Documents" "F:\CHIAVETTA\DOCS" /I /D /E /Y

trasformando il batch in un programma sfruttabile su qualsiasi computer !

Automatizzare l'avvio del batch

Come accennato più sopra, per non dover pensare a nulla potremmo anche far sì che la copia parta all'avvio di Windows. Ovviamente se la destinazione è una chiavetta o disco USB, dovremo assicurarci di averla prima inserita nel pc... ma neanche tanto: c'è una scappatoia :)

Innanzi tutto finiamo di preparare il nostro batch, inserendo il comando "pause" visto prima proprio in cima ai comandi ! Così facendo, quando il computer parte si avvia il batch che però resterà in attesa della pressione di un tasto per partire, ricordandoci e dandoci il tempo di inserire la chiavetta USB

  • Nel batch editor, portiamoci in cima al batch. Se la prima riga è occupata, clicchiamo all'inizio del primo carattere e premiamo [Invio] per creare una nuova riga in testa a tutto.
  • posizioniamoci sulla prima riga e digitiamo la seguente riga di codice, premendo poi [Invio]:
    pause
  • salviamo il batch con il nome "copia_usb.bat"

Il comando serve a mettere in pausa e attende la pressione di un tasto, scrivendo nella finestra dos "premere un tasto per continuare ..."

Ora non ci resta altro da fare che copiare il nostro file "copia_usb.bat" nella cartella di avvio, che apriremo sfruttando ancora una volta le variabili di ambiente di Windows:

  • aprire una finestra di explorer (tasto [Windows] + [E]
  • copiare la seguente riga negli appunti:
    %appdata%\Microsoft\Windows\Menu Start\Programmi\Esecuzione automatica
  • incollarla nella barra dell'indirizzo di Explorer e premere [Invio]
  • copiare infine il nostro "copia_usb.bat" dentro la cartella di avvio

Ora possiamo anche riavviare il computer per testare il nostro backup automatico !

Il codice del batch

Ecco qui tutto il codice creato grazie a Datalign e a qualche trucchetto, pronto da esaminare:

pause

xcopy.exe "%userprofile%\Documents" "F:\CHIAVETTA\DOCS" /I /D /E /Y

xcopy.exe "F:\CHIAVETTA\DOCS" "%userprofile%\Documents" /I /D /E /Y

icacls "F:\CHIAVETTA\DOCS" /grant Users:(OI)(CI)(DE,WEA,DC,WA,WD,RC,WO)

icacls "F:\CHIAVETTA\DOCS" /grant *S-1-1-0:(OI)(CI)(DE,WEA,DC,WA,WD,RC,WO)

xcopy.exe "E:\MP3" "F:\CHIAVETTA\MP3" /I /D /E /Y

pause

Datalign è gratuito, leggero e non richiede installazione: un piccolo software che ci farà risparmiare un sacco di tempo e ci eviterà la perdita di appunti e file preziosi !