Molto probabilmente hai sentito parlare di servizi, come Dropbox, che vengono utilizzati per mantenere i file sincronizzati su più macchine. Tuttavia, cosa succede se si desidera eseguire questa operazione su una singola macchina? Cioè, mantieni i file che hanno lo stesso nome di file sincronizzati sulla macchina in modo che quando uno dei file cambia, vengono tutti aggiornati.
Questa funzionalità può essere molto utile, soprattutto per gli sviluppatori o gli amministratori di sistema in cui a volte è richiesta la duplicazione dei file.
Come funziona
Supponi di essere uno sviluppatore web che, nel corso del tempo, ha messo insieme una bella raccolta di funzioni Javascript che usi in tutti i siti che gestisci. Man mano che aggiungi o migliori questo file Javascript (chiamiamolo "library.js"), viene aggiornata solo la copia corrente che stai modificando. Ciò significherebbe, ad esempio, se apporti una correzione o un miglioramento di bug, dovresti applicarlo manualmente anche alla cartella del codice sorgente di ciascuno degli altri siti.
Il nostro strumento tenta di risolvere il problema di dover andare ad applicare manualmente il file aggiornato a ciascuna cartella di origine. Cosa fa:
- Cerca tutti i file con un nome specificato (library.js) all'interno di una cartella principale specificata (% UserProfile% \ Documents \ Web Sites).
- Per tutti i file denominati library.js, individua quello che è stato modificato più di recente e rileva il valore hash del file.
- Tutti gli altri file denominati library.js (che non sono la copia aggiornata più recente) hanno quindi il loro valore hash del file confrontato con il più recente (determinato nel passaggio precedente).
- Se i valori hash del file sono diversi, la rispettiva copia di library.js viene sostituita con la copia aggiornata più di recente.
Perché stiamo usando valori hash per confrontare i file, abbiamo la certezza che gli eventuali file sostituiti sono effettivamente diversi dalla copia più recente. Ad esempio, se si dovesse eseguire il processo e sono state effettuate 5 sostituzioni di file, eseguire nuovamente il processo immediatamente dopo non comporterebbe alcuna sostituzione poiché i valori hash del file sono ora identici.
Aggiorna allo strumento di copia più recente
Lo strumento Update to Newest Copy Tool è una versione modificata di uno script batch con lo stesso nome (entrambi sono disponibili per il download utilizzando i collegamenti in fondo all'articolo) che è stato convertito in un file EXE per includere il richiesto Utilità Nirsoft HashMyFiles . Lo strumento deve essere eseguito dalla riga di comando con determinati parametri specificati. Se si dovesse semplicemente eseguire il file EXE facendo doppio clic, verrà visualizzato un messaggio che lo indica.
Per utilizzare Aggiorna alla copia più recente, puoi visualizzare i parametri eseguendo "UpdateToNewestCopy /?" che mostra la seguente finestra di dialogo:
Gli unici parametri richiesti sono SourceFolder (ad esempio% UserProfile% \ Documents \ Web Sites) e FileName (library.js). Tuttavia, è possibile modificare la funzionalità aggiungendo ulteriori opzioni come descritto sopra.
Esempi
Il comando seguente troverebbe tutti i file denominati "Common.vb" all'interno della cartella "C: \ users \ jfaulkner \ documents \ Code Files", eseguendo la sostituzione ma facendo un backup della copia corrente prima di sovrascriverla (questo output è ciò che ha prodotto il immagine in alto per questo articolo):
UpdateToNewestCopy "C: \ users \ jfaulkner \ documents \ Code Files" Common.vb / B
Il seguente comando esegue la stessa azione di ricerca di cui sopra, tuttavia segnala solo i file che verrebbero sostituiti e non esegue effettivamente alcuna operazione sui file:
UpdateToNewestCopy "C: \ users \ jfaulkner \ documents \ Code Files" Common.vb / V
Supponiamo che esista un file denominato "C: \ Config \ FilesToSearch.txt" con i seguenti contenuti:
library.js
Common.vb
Il seguente comando cerca nella cartella i miei documenti dell'utente corrente e riporta eventuali aggiornamenti a "library.js" e "Common.vb", ma non esegue effettivamente alcuna operazione di aggiornamento:
UpdateToNewestCopy "% UserProfile% \ Documents" "C: \ Config \ FilesToSearch.txt" / L / V
Automatizzare il processo
Questo processo è un candidato ideale per l'automazione. Di creazione di un'attività pianificata (non è richiesto nulla di speciale) con le impostazioni specificate e facendolo funzionare ogni giorno / ogni ora / ogni 15 minuti (a seconda delle tue esigenze), puoi mantenere i file sincronizzati in un vero modo imposta e dimentica.
Scarica
Aggiorna alla copia più recente: formato eseguibile modificato
Aggiorna alla copia più recente: file batch di origine (più orientato alla riga di comando)