Cel mai probabil ați auzit de servicii, cum ar fi Dropbox, care sunt utilizate pentru a păstra fișierele sincronizate pe mai multe mașini. Totuși, ce se întâmplă dacă doriți să efectuați această operație pe o singură mașină? Adică, păstrați fișierele care au același nume de fișier sincronizat pe mașină astfel încât, atunci când unul dintre fișiere se schimbă, toate să fie actualizate.
Această funcționalitate poate fi destul de utilă, în special pentru dezvoltatori sau administratori de sistem în care uneori este necesară duplicarea fișierelor.
Cum functioneaza
Să presupunem că sunteți un dezvoltator web care, de-a lungul timpului, a creat o colecție frumoasă de funcții Javascript pe care le utilizați pe toate site-urile pe care le întrețineți. Pe măsură ce adăugați sau îmbunătățiți acest fișier Javascript (să-l numim „library.js”), doar copia curentă pe care o editați este actualizată. Acest lucru ar însemna, de exemplu, dacă efectuați o remediere a erorilor sau o îmbunătățire, ar trebui să mergeți manual să o aplicați și în fișierul codului sursă al celorlalte site-uri.
Instrumentul nostru încearcă să rezolve problema necesității de a merge manual să aplicați fișierul actualizat fiecărui folder sursă. Ce face:
- Căutați toate fișierele cu un nume specificat (library.js) într-un folder rădăcină specificat (% UserProfile% \ Documents \ Web Sites).
- Pentru toate fișierele numite library.js, îl localizează pe cel care a fost modificat cel mai recent și notează valoarea hash a fișierului său.
- Toate celelalte fișiere denumite library.js (care nu sunt cea mai recentă copie actualizată) au apoi valoarea hash a fișierului comparată cu cea mai recentă (determinată în pasul anterior).
- Dacă valorile de hash ale fișierului sunt diferite, atunci copia respectivă a library.js este înlocuită cu cea mai recentă copie actualizată.
Pentru că folosim valori hash pentru a compara fișierele, suntem siguri că toate fișierele înlocuite sunt într-adevăr diferite de cea mai recentă copie. De exemplu, dacă ați rula procesul și s-au făcut 5 înlocuiri de fișiere, rularea procesului imediat după aceea nu ar face nicio înlocuire, deoarece valorile hash ale fișierului sunt acum identice.
Actualizați la cel mai nou instrument de copiere
Instrumentul Actualizare la cel mai nou instrument de copiere este o versiune modificată a unui script batch cu același nume (ambele sunt disponibile pentru descărcare utilizând linkurile din partea de jos a articolului) care a fost convertit într-un fișier EXE pentru a include necesarul Utilitarul Nirsoft HashMyFiles . Instrumentul trebuie rulat din linia de comandă, cu anumiți parametri specificați. Dacă ați rula doar fișierul EXE făcând dublu clic, veți primi un mesaj care să indice acest lucru.
Pentru a utiliza Actualizarea la cea mai nouă copie, puteți vizualiza parametrii executând „UpdateToNewestCopy /?” care afișează următorul dialog:
Singurii parametri solicitați sunt SourceFolder (de ex.% UserProfile% \ Documents \ Web Sites) și FileName (library.js). Cu toate acestea, puteți modifica funcționalitatea adăugând comutatoare suplimentare așa cum este descris mai sus.
Exemple
Următoarea comandă va găsi toate fișierele denumite „Common.vb” din folderul „C: \ users \ jfaulkner \ documents \ Code Files”, efectuând înlocuirea, dar făcând o copie de rezervă a copiei curente înainte de suprascriere (această ieșire este cea care a produs imaginea de sus pentru acest articol):
UpdateToNewestCopy „C: \ users \ jfaulkner \ documents \ Code Files” Common.vb / B
Următoarea comandă efectuează aceeași acțiune de căutare ca mai sus, cu toate acestea raportează numai despre fișierele care ar fi înlocuite și nu efectuează de fapt nicio operație de fișier:
UpdateToNewestCopy „C: \ users \ jfaulkner \ documents \ Code Files” Common.vb / V
Să presupunem că există un fișier numit „C: \ Config \ FilesToSearch.txt” cu următorul conținut:
library.js
Common.vb
Următoarea comandă ar căuta în folderul documentele mele ale utilizatorului curent și ar raporta orice actualizări la „library.js” și „Common.vb”, dar nu ar efectua nicio operațiune de actualizare:
UpdateToNewestCopy „% UserProfile% \ Documents” „C: \ Config \ FilesToSearch.txt” / L / V
Automatizarea procesului
Acest proces este un candidat ideal pentru automatizare. De crearea unei sarcini programate (nu este necesar nimic special) cu setările specificate și dacă este rulat zilnic / orar / la fiecare 15 minute (în funcție de cerințele dvs.), puteți păstra fișierele sincronizate în mod adevărat set-it-and-uita-it.
Descarca
Actualizați la cea mai nouă copie - format executabil modificat
Actualizați la cea mai nouă copie - fișiere batch sursă (mai mult orientat pe linia de comandă)