Je hebt waarschijnlijk wel eens gehoord van services, zoals Dropbox, die worden gebruikt om bestanden op meerdere machines gesynchroniseerd te houden. Maar wat als u deze bewerking op één machine wilt uitvoeren? Dat wil zeggen: houd bestanden met dezelfde bestandsnaam gesynchroniseerd over de machine, zodat wanneer een van de bestanden verandert, ze allemaal worden bijgewerkt.
Deze functionaliteit kan erg handig zijn, vooral voor ontwikkelaars of systeembeheerders waar soms bestanden moeten worden gedupliceerd.
Hoe het werkt
Stel dat u een webontwikkelaar bent die in de loop van de tijd een mooie verzameling Javascript-functies heeft samengesteld die u gebruikt op alle sites die u onderhoudt. Als u dit Javascript-bestand toevoegt of verbetert (laten we het "library.js" noemen), wordt alleen de huidige kopie die u aan het bewerken bent bijgewerkt. Dit zou bijvoorbeeld betekenen dat als u een bugfix of verbetering aanbrengt, u deze ook handmatig moet toepassen op de broncodemappen van uw andere sites.
Onze tool probeert het probleem op te lossen van het handmatig moeten toepassen van het bijgewerkte bestand op elke bronmap. Wat het doet:
- Zoekt naar alle bestanden met een opgegeven naam (library.js) in een opgegeven hoofdmap (% UserProfile% \ Documents \ Web Sites).
- Voor alle bestanden met de naam library.js zoekt het degene die het laatst is gewijzigd en noteert het de hash-waarde van het bestand.
- Alle andere bestanden met de naam library.js (die niet de meest recente bijgewerkte kopie zijn) hebben dan hun bestandshash-waarde vergeleken met de meest recente (bepaald in de vorige stap).
- Als de hash-waarden van het bestand verschillen, wordt de respectieve kopie van library.js vervangen door de meest recent bijgewerkte kopie.
Omdat we gebruiken hash-waarden om de bestanden te vergelijken, zijn we er zeker van dat alle vervangen bestanden inderdaad anders zijn dan de meest recente kopie. Als u bijvoorbeeld het proces zou uitvoeren en er werden 5 bestanden vervangen, zou het proces onmiddellijk daarna opnieuw uitvoeren geen vervanging maken, aangezien de hash-waarden van het bestand nu identiek zijn.
Update naar de nieuwste kopieertool
De tool Update naar de nieuwste kopieertool is een aangepaste versie van een batch-script met dezelfde naam (beide zijn beschikbaar om te downloaden via de links onderaan het artikel) die is geconverteerd naar een EXE-bestand om de vereiste Nirsoft HashMyFiles-hulpprogramma . De tool moet worden uitgevoerd vanaf de opdrachtregel met bepaalde parameters opgegeven. Als u het EXE-bestand gewoon zou starten door te dubbelklikken, krijgt u een bericht dat dit aangeeft.
Om Update to Newest Copy te gebruiken, kunt u de parameters bekijken door "UpdateToNewestCopy /?" die het volgende dialoogvenster toont:
De enige vereiste parameters zijn de SourceFolder (bijv.% UserProfile% \ Documents \ Web Sites) en de FileName (library.js). U kunt de functionaliteit echter wijzigen door extra schakelaars toe te voegen, zoals hierboven beschreven.
Voorbeelden
Met de volgende opdracht worden alle bestanden met de naam "Common.vb" in de map "C: \ users \ jfaulkner \ documents \ Code Files" gevonden, waarbij de vervanging wordt uitgevoerd, maar een back-up wordt gemaakt van de huidige kopie voordat deze wordt overschreven (deze uitvoer heeft de bovenste afbeelding voor dit artikel):
UpdateToNewestCopy "C: \ users \ jfaulkner \ documents \ Code Files" Common.vb / B
De volgende opdracht voert dezelfde zoekactie uit als hierboven, maar rapporteert alleen over bestanden die zouden worden vervangen en voert in feite geen bestandsbewerkingen uit:
UpdateToNewestCopy "C: \ users \ jfaulkner \ documents \ Code Files" Common.vb / V
Stel dat er een bestand is met de naam "C: \ Config \ FilesToSearch.txt" met de volgende inhoud:
bibliotheek.js
Gewone.vb
Met de volgende opdracht wordt in de map Mijn documenten van de huidige gebruiker gezocht en wordt gerapporteerd over eventuele updates voor "library.js" en "Common.vb", maar worden geen updatebewerkingen uitgevoerd:
UpdateToNewestCopy "% UserProfile% \ Documents" "C: \ Config \ FilesToSearch.txt" / L / V
Automatisering van het proces
Dit proces is een ideale kandidaat voor automatisering. Door het maken van een geplande taak (niets speciaals vereist) met de gespecificeerde instellingen en als je het dagelijks / elk uur / elke 15 minuten uitvoert (afhankelijk van je vereisten), kun je bestanden gesynchroniseerd houden op een echte set-it-and-forget-it-manier.
Downloaden
Update naar de nieuwste kopie - gewijzigd uitvoerbaar formaat
Update naar de nieuwste kopie - bronbatchbestanden (meer command line georiënteerd)