11Aug
Du har mest sannsynlig hørt om tjenester, for eksempel Dropbox, som brukes til å holde filer synkronisert på flere maskiner. Men hva om du vil utføre denne operasjonen på en enkelt maskin? Det vil si, behold filer som har samme filnavn synkronisert på tvers av maskinen slik at når en av filene endres, blir de alle oppdatert.
Denne funksjonaliteten kan være ganske nyttig, spesielt for utviklere eller systemadministratorer der det er noen ganger nødvendig med duplisering av filer.
Hvordan fungerer det
Anta at du er en webutvikler som i løpet av tiden har satt sammen en fin samling av Javascript-funksjoner som du bruker gjennom alle nettstedene du opprettholder. Når du legger til eller forbedrer denne Javascript-filen( la oss kalle det "library.js"), er bare den nåværende kopien du redigerer oppdatert. Dette vil for eksempel bety at hvis du gjør en feilrettelse eller forbedring, må du manuelt bruke den til hver av de andre kildemapsmappen din i tillegg.
Vårt verktøy forsøker å løse problemet med å måtte manuelt søke den oppdaterte filen til hver kildemappe. Hva det gjør:
- Søker etter alle filer med et spesifisert navn( library.js) i en spesifisert rotmappe( % UserProfile% \ Documents \ Web Sites).
- For alle filer som heter library.js, lokaliserer den den som ble modifisert sist og noterer sin fil hash verdi.
- Alle andre filer med navnet library.js( som ikke er den nyeste oppdaterte kopien) har da sin fil hash verdi sammenlignet med den siste( bestemt i forrige trinn).
- Hvis filens hashverdier er forskjellige, erstattes den respektive kopien av library.js med den sist oppdaterte kopien.
Fordi vi bruker hashverdier for å sammenligne filene, er vi sikre på at eventuelle filer som er erstattet, faktisk er annerledes enn den nyeste kopien. For eksempel, hvis du skulle kjøre prosessen og 5 filutskiftninger ble gjort, kjørte prosessen igjen umiddelbart etterpå, ville det ikke bli gjort noen erstatning siden filen hash-verdiene nå er identiske.
Oppdatering til nyeste kopimaskin
Oppdateringen til nyeste kopimaskinverktøyet er en modifisert versjon av et batchskript med samme navn( begge er tilgjengelige for nedlasting ved hjelp av koblingene nederst i artikkelen) som er konvertert til en EXE-filfor å inkludere det nødvendige Nirsoft HashMyFiles-verktøyet. Verktøyet må kjøres fra kommandolinjen med bestemte parametere. Hvis du bare skulle kjøre EXE-filen ved å dobbeltklikke, vil du få en melding som indikerer dette.
Hvis du vil bruke oppdatering til nyeste kopi, kan du se parameterne ved å kjøre "UpdateToNewestCopy /?" Som viser følgende dialog:
De eneste nødvendige parameterne er SourceFolder( f.eks.% UserProfile% \ Documents \ Web Sites) og FileNameJS).Du kan imidlertid endre funksjonaliteten ved å legge til flere brytere som beskrevet ovenfor.
Eksempler
Følgende kommando vil finne alle filer som heter "Common.vb" i mappen "C: \ users \ jfaulkner \ documents \ Code Files", utfører erstatning, men sikkerhetskopierer gjeldende kopi før overskriving( denne utgangen erHva produserte toppbildet for denne artikkelen):
UpdateToNewestCopy "C: \ users \ jfaulkner \ documents \ Kodefiler" Common.vb / B
Følgende kommando utfører samme søkehandling som ovenfor, men det rapporterer bare om filer som villebli erstattet og faktisk ikke utføre noen filoperasjoner:
UpdateToNewestCopy "C: \ users \ jfaulkner \ documents \ Kodefiler" Common.vb / V
Anta at det er en fil kalt "C: \ Config \ FilesToSearch.txt" medFølgende innhold:
library.js
Common.vb
Følgende kommando ville søke i mappen min dokument av den aktuelle brukeren og rapportere om eventuelle oppdateringer til "library.js" og "Common.vb", men ville egentlig ikke pomformere eventuelle oppdateringsoperasjoner:
UpdateToNewestCopy "% UserProfile% \ Documents" "C: \ Config \ FilesToSearch.txt" / L / V
Automatisere prosessen
Denne prosessen er en ideell kandidat for automatisering. Ved å opprette en planlagt oppgave( ikke noe spesielt nødvendig) med de angitte innstillingene og få den til å kjøre daglig /hourly/ hvert 15. minutt( avhengig av dine krav), kan du beholde filer synkronisert i sann sett-det-og-glem det.
Last ned
Update til nyeste kopi - endret kjørbart format
Oppdatering til nyeste kopi - kilde-batchfiler( mer kommandolinjeorientert)