Startpagina » hoe » IT Geek Hoe u bestanden met dezelfde naam synchroon kunt houden

    IT Geek Hoe u bestanden met dezelfde naam synchroon kunt houden

    U hebt waarschijnlijk gehoord van services, zoals Dropbox, die worden gebruikt om bestanden gesynchroniseerd te houden op meerdere machines. Maar wat als u deze bewerking op één enkele machine wilt uitvoeren? Dat wil zeggen, houd bestanden met dezelfde bestandsnaam synchroon over de machine, zodat wanneer een van de bestanden verandert, deze allemaal worden bijgewerkt.

    Deze functionaliteit kan best nuttig zijn, vooral voor ontwikkelaars of systeembeheerders, waar soms duplicatie van bestanden vereist is.

    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. Terwijl je dit Javascript-bestand toevoegt of verbetert (laten we het "library.js" noemen), wordt alleen de huidige kopie die je aan het bewerken bent bijgewerkt. Dit zou bijvoorbeeld betekenen dat als u een bugfix of -verbetering maakt, u deze handmatig moet toepassen op de broncodemap van elke andere site..

    Onze tool probeert het probleem op te lossen dat handmatig het bijgewerkte bestand moet worden toegepast op elke bronmap. Wat het doet:

    1. Zoekt naar alle bestanden met een opgegeven naam (library.js) binnen een opgegeven hoofdmap (% UserProfile% \ Documents \ Web Sites).
    2. Voor alle bestanden met de naam library.js zoekt deze de laatst gewijzigde en noteert de hash-waarde van het bestand.
    3. Alle andere bestanden met de naam library.js (die niet de meest recente bijgewerkte kopie zijn) hebben dan hun hash-bestandsgrootte vergeleken met de meest recente (bepaald in de vorige stap).
    4. Als de hash-waarden van het bestand verschillen, wordt de betreffende kopie van library.js vervangen door de laatst bijgewerkte kopie.

    Omdat we hash-waarden gebruiken 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 5 bestandsvervangingen zijn gemaakt, zou het onmiddellijk opnieuw uitvoeren van het proces geen vervangingen meer maken omdat de hash-waarden van het bestand nu identiek zijn.

    Update naar de nieuwste kopieertool

    De Update naar de nieuwste kopieertool is een aangepaste versie van een batchtype met dezelfde naam (beide zijn beschikbaar om te downloaden via de links onderaan in het artikel) die is geconverteerd naar een EXE-bestand om de vereiste Nirsoft op te nemen HashMyFiles-hulpprogramma. Het hulpprogramma moet worden uitgevoerd vanaf de opdrachtregel met bepaalde opgegeven parameters. Als u het EXE-bestand gewoon zou moeten uitvoeren door te dubbelklikken, krijgt u een bericht dat dit aangeeft.

    Als u Update naar de nieuwste kopie wilt gebruiken, kunt u de parameters bekijken door "UpdateToNewestCopy /?" Uit te voeren, waarbij het volgende dialoogvenster wordt weergegeven:

    De enige vereiste parameters zijn de SourceFolder (bijvoorbeeld% UserProfile% \ Documents \ Web Sites) en de Bestandsnaam (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" gevonden in de map "C: \ users \ jfaulkner \ documents \ Code Files", waarbij de vervanging wordt uitgevoerd, maar een back-up van de huidige kopie wordt gemaakt voordat deze wordt overschreven (deze uitvoer produceerde 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 het rapporteert alleen bestanden die zouden worden vervangen en die geen enkele bestandsbewerking uitvoeren:

    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:

    library.js
    Common.vb

    De volgende opdracht zoekt in de map Mijn documenten van de huidige gebruiker en rapporteert over updates voor "library.js" en "Common.vb", maar voert geen updateactiviteiten uit:

    UpdateToNewestCopy "% UserProfile% \ Documents" "C: \ Config \ FilesToSearch.txt" / L / V

    Het proces automatiseren

    Dit proces is een ideale kandidaat voor automatisering. Door een geplande taak te maken (niets bijzonders vereist) met de opgegeven instellingen en deze dagelijks / elk uur / elke 15 minuten (afhankelijk van uw vereisten) te laten draaien, kunt u bestanden gesynchroniseerd houden in echte set-it-and-forget-it mode.

    Download

    Update naar nieuwste kopie - gewijzigd uitvoerbaar formaat

    Update naar nieuwste kopie - bronbatchbestanden (meer opdrachtregel georiënteerd)