IT Geek Come mantenere i file con lo stesso nome nella sincronizzazione
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è, mantenere i file che hanno lo stesso nome di file sincronizzati attraverso la macchina in modo tale che quando uno dei file cambia, vengono tutti aggiornati.
Questa funzionalità può essere molto utile, specialmente per gli sviluppatori o gli amministratori di sistema in cui talvolta è richiesta la duplicazione dei file.
Come funziona
Supponiamo che tu sia uno sviluppatore web che, nel corso del tempo, ha messo insieme una bella raccolta di funzioni Javascript che usi in tutti i siti che conservi. Quando aggiungi o migliora questo file Javascript (chiamiamolo "library.js"), viene aggiornata solo la copia corrente che stai modificando. Ciò significherebbe, ad esempio, se si apportano correzioni o miglioramenti di bug, si dovrebbe andare manualmente ad applicarlo anche a ciascuna cartella del codice sorgente degli altri siti.
Il nostro strumento tenta di risolvere il problema di dover andare manualmente ad applicare il file aggiornato a ciascuna cartella sorgente. 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 prende nota del 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 dell'hash del file sono diversi, la rispettiva copia di library.js viene sostituita con la copia aggiornata più recentemente.
Poiché utilizziamo valori di hash per confrontare i file, siamo certi che qualsiasi file sostituito è effettivamente diverso dalla copia più recente. Ad esempio, se dovessi eseguire il processo e sono state eseguite 5 sostituzioni di file, l'esecuzione del processo subito dopo non produrrebbe alcuna sostituzione poiché i valori hash del file ora sono identici.
Aggiorna allo strumento di copia più recente
Lo strumento Aggiorna allo strumento Copia più recente è una versione modificata di uno script batch con lo stesso nome (entrambi sono disponibili per il download utilizzando i collegamenti nella parte inferiore dell'articolo) che è stato convertito in un file EXE per includere il Nirsoft richiesto Utility 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 l'aggiornamento alla più recente copia, è possibile visualizzare i parametri eseguendo "UpdateToNewestCopy /?" Che mostra la seguente finestra di dialogo:
Gli unici parametri obbligatori 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 seguente comando troverà tutti i file denominati "Common.vb" all'interno della cartella "C: \ users \ jfaulkner \ documents \ Code Files", eseguendo la sostituzione ma eseguendo un backup della copia corrente prima della sovrascrittura (questo output è ciò che ha prodotto il file 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 riporta solo i file che verrebbero sostituiti e in realtà non esegue 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 documenti dell'utente dell'utente corrente e segnala eventuali aggiornamenti a "library.js" e "Common.vb", ma in realtà non esegue alcuna operazione di aggiornamento:
UpdateToNewestCopy "% UserProfile% \ Documents" "C: \ Config \ FilesToSearch.txt" / L / V
Automatizzare il processo
Questo processo è un candidato ideale per l'automazione. Creando un'attività programmata (niente di speciale richiesto) con le impostazioni specificate e facendola funzionare ogni giorno / ogni ora / ogni 15 minuti (a seconda delle esigenze), puoi mantenere i file sincronizzati in vero set-it-and-forget-it moda.
Scaricare
Aggiorna alla più recente copia - formato eseguibile modificato
Aggiorna alla più recente copia - file batch di origine (più orientato alla riga di comando)