Du har troligen hört talas om tjänster, till exempel Dropbox, som används för att hålla filer synkroniserade över flera datorer. Men vad händer om du vill utföra den här åtgärden på en enda maskin? Det vill säga, håll filer som har samma filnamn synkroniserade över maskinen så att när en av filerna ändras uppdateras de alla.
Denna funktionalitet kan vara ganska användbar, särskilt för utvecklare eller systemadministratörer där dubblering av filer ibland krävs.
Hur det fungerar
Antag att du är en webbutvecklare som under tiden har sammanställt en fin samling Javascript-funktioner som du använder på alla webbplatser du underhåller. När du lägger till eller förbättrar den här Javascript-filen (låt oss kalla den "library.js") uppdateras endast den aktuella kopian du redigerar. Detta skulle till exempel innebära att om du gör en buggfix eller förbättring måste du manuellt gå tillämpa den på var och en av dina andra webbplatsers källkodsmapp.
Vårt verktyg försöker lösa problemet med att manuellt måste tillämpa den uppdaterade filen på varje källmapp. Vad den gör:
- Söker efter alla filer med ett angivet namn (library.js) i en angiven rotmapp (% UserProfile% \ Documents \ Web Sites).
- För alla filer med namnet library.js hittar den den som senast modifierades och noterar dess filhash-värde.
- Alla andra filer med namnet library.js (som inte är den senaste uppdaterade kopian) har sedan sitt filhash-värde jämfört med det senaste (bestämdes i föregående steg).
- Om filens hashvärden är annorlunda ersätts respektive kopia av library.js med den senast uppdaterade kopian.
Eftersom vi använder hash-värden För att jämföra filerna är vi säkra på att alla filer som ersätts verkligen skiljer sig från den senaste kopian. Om du till exempel skulle köra processen och 5 filersättningar gjordes, skulle det inte göra några ersättningar att köra processen omedelbart efteråt eftersom filens hashvärden nu är identiska.
Uppdatera till det senaste kopieringsverktyget
Verktyget Uppdatera till det senaste kopieringsverktyget är en modifierad version av ett batch-skript med samma namn (båda är tillgängliga för nedladdning med länkarna längst ner i artikeln) som har konverterats till en EXE-fil för att inkludera det som krävs Nirsoft HashMyFiles-verktyget . Verktyget måste köras från kommandoraden med angivna vissa parametrar. Om du bara skulle köra EXE-filen genom att dubbelklicka får du ett meddelande som anger detta.
För att använda Uppdatera till nyaste kopia kan du visa parametrarna genom att köra "UpdateToNewestCopy /?" som visar följande dialogruta:
De enda parametrar som krävs är SourceFolder (t.ex.% UserProfile% \ Documents \ Web Sites) och FileName (library.js). Du kan dock ändra funktionaliteten genom att lägga till ytterligare omkopplare enligt beskrivningen ovan.
Exempel
Följande kommando skulle hitta alla filer med namnet “Common.vb” i mappen “C: \ användare \ jfaulkner \ dokument \ Kodfiler”, utföra ersättningen men göra en säkerhetskopia av den aktuella kopian innan den skrivs över (denna utgång är det som gav toppbild för den här artikeln):
UpdateToNewestCopy “C: \ användare \ jfaulkner \ dokument \ Kodfiler” Common.vb / B
Följande kommando utför samma sökåtgärd som ovan, men det rapporterar bara om filer som skulle ersättas och utför faktiskt inga filåtgärder:
UpdateToNewestCopy “C: \ användare \ jfaulkner \ dokument \ Kodfiler” Common.vb / V
Antag att det finns en fil med namnet "C: \ Config \ FilesToSearch.txt" med följande innehåll:
library.js
Common.vb
Följande kommando skulle söka i mina dokumentmappar för den aktuella användaren och rapportera om uppdateringar till “library.js” och “Common.vb”, men skulle inte utföra några uppdateringsåtgärder:
UpdateToNewestCopy “% UserProfile% \ Documents” “C: \ Config \ FilesToSearch.txt” / L / V
Automatisera processen
Denna process är en idealisk kandidat för automatisering. Förbi skapa en schemalagd uppgift (inget speciellt krävs) med de angivna inställningarna och om den körs dagligen / timme / var 15: e minut (beroende på dina krav) kan du behålla filer synkroniserade på ett riktigt sätt-och-glöm-sätt.
Ladda ner
Uppdatera till nyaste kopia - modifierat körbart format
Uppdatera till de senaste kopieringsbatchfilerna (mer kommandoradsorienterad)