11Aug

IT Geek: Jak zachować pliki o tej samej nazwie w synchronizacji

Najprawdopodobniej słyszałeś o usługach, takich jak Dropbox, które są używane do synchronizowania plików na wielu komputerach. A co jeśli chcesz wykonać tę operację na jednym komputerze? To znaczy, zachowaj pliki, które mają taką samą nazwę pliku zsynchronizować w maszynie, tak, że gdy jeden z plików ulegnie zmianie, wszystkie są aktualizowane.

Ta funkcja może być całkiem przydatna, szczególnie dla programistów lub administratorów systemu, w których czasami wymagane jest powielanie plików.

Jak to działa

Przypuśćmy, że jesteś programistą internetowym, który z biegiem czasu opracował ładną kolekcję funkcji JavaScript, z których korzystasz we wszystkich serwisach, które obsługujesz. Podczas dodawania lub ulepszania tego pliku JavaScript( nazwijmy go "library.js") aktualizowana jest tylko aktualna kopia, którą edytujesz. Oznaczałoby to na przykład, że jeśli poprawisz lub poprawisz błąd, musisz ręcznie zastosować go do każdego z folderów kodu źródłowego innych witryn.

Nasze narzędzie próbuje rozwiązać problem konieczności ręcznego zastosowania zaktualizowanego pliku do każdego folderu źródłowego. Co robi:

  1. Wyszukuje wszystkie pliki o określonej nazwie( library.js) w określonym folderze głównym( % UserProfile% \ Documents \ Web Sites).
  2. Dla wszystkich plików o nazwie library.js lokalizuje ten, który został ostatnio zmodyfikowany i odnotowuje wartość skrótu tego pliku.
  3. Wszystkie inne pliki o nazwie library.js( które nie są najnowszą zaktualizowaną kopią) mają następnie wartość mieszania pliku porównywalną z najnowszą( określoną w poprzednim kroku).
  4. Jeśli wartości mieszania pliku są różne, to odpowiednia kopia biblioteki library.js zostanie zastąpiona najnowszą zaktualizowaną kopią.

Ponieważ używamy wartości mieszania do porównywania plików, jesteśmy pewni, że wszystkie wymienione pliki są rzeczywiście inne niż najnowsza kopia. Na przykład, jeśli uruchomiono proces i dokonano 5 wymiany plików, ponowne uruchomienie procesu nie spowodowałoby żadnych zmian, ponieważ wartości skrótów pliku są teraz identyczne.

Aktualizacja do najnowszego narzędzia kopiowania

Narzędzie do aktualizacji najnowszego narzędzia do kopiowania to zmodyfikowana wersja skryptu wsadowego o tej samej nazwie( oba są dostępne do pobrania przy użyciu linków na dole artykułu), który został przekonwertowany na plik EXEw celu włączenia wymaganego narzędzia Nirsoft HashMyFiles. Narzędzie musi zostać uruchomione z wiersza poleceń z określonymi określonymi parametrami. Jeśli chcesz dwukrotnie uruchomić plik EXE, otrzymasz komunikat o tym fakcie.

Aby użyć funkcji Aktualizuj do najnowszej kopii, możesz wyświetlić parametry, uruchamiając "UpdateToNewestCopy /?", Która pokazuje następujące okno dialogowe:

Jedynymi wymaganymi parametrami są SourceFolder( np.% UserProfile% \ Documents \ Web Sites) i FileName( biblioteka.js).Można jednak zmienić funkcjonalność, dodając dodatkowe przełączniki, jak opisano powyżej.

Przykłady

Poniższe polecenie znalazłoby wszystkie pliki o nazwie "Common.vb" w folderze "C: \ users \ jfaulkner \ documents \ Code Files", dokonując wymiany, ale wykonując kopię zapasową bieżącej kopii przed nadpisaniem( to wyjścieco stworzyło najlepsze zdjęcie tego artykułu):

UpdateToNewestCopy "C: \ users \ jfaulkner \ documents \ Code Files" Common.vb / B

Poniższa komenda wykonuje to samo działanie wyszukiwania co powyżej, jednak raportuje tylko pliki, którebyć zastąpione i nie wykonuje żadnych operacji na plikach:

UpdateToNewestCopy "C: \ users \ jfaulkner \ documents \ Code Files" Common.vb / V

Załóżmy, że istnieje plik o nazwie "C: \ Config \ FilesToSearch.txt"zawartość:

biblioteka.js
Common.vb

Następująca komenda przeszuka mój folder dokumentów bieżącego użytkownika i zgłosi wszelkie aktualizacje do "library.js" i "Common.vb", ale w rzeczywistości nie będzie performuj wszelkie operacje aktualizacji:

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

Automatyzacja procesu

Proces ten jest idealnym kandydatem do automatyzacji. Tworząc zaplanowane zadanie( nic specjalnego) z określonymi ustawieniami i uruchamiając go codziennie co /hourly/ co 15 minut( w zależności od wymagań), można synchronizować pliki w sposób prawdziwy "ustaw i zapomnij".

Pobierz

Aktualizacja do najnowszej kopii - zmodyfikowany plik wykonywalny

Aktualizacja do najnowszej kopii - źródłowe pliki wsadowe( więcej zorientowane na linię poleceń)