Skip to main content

IT Geek:如何同步保存具有相同名稱的文件

IT Geek:如何同步保存具有相同名稱的文件

Geoffrey Carr

您很可能聽說過諸如Dropbox之類的服務,這些服務用於使文件在多台計算機之間保持同步。但是,如果要在單台機器上執行此操作,該怎麼辦?也就是說,保持具有相同文件名的文件在整個機器上同步,這樣當其中一個文件發生更改時,它們都會更新。

此功能非常有用,尤其適用於有時需要重複文件的開發人員或系統管理員。

這個怎麼運作

假設您是一名Web開發人員,隨著時間的推移,他匯集了您在所維護的所有站點中使用的一組很好的Javascript函數。當您添加或改進此Javascript文件(我們稱之為“library.js”)時,只會更新您正在編輯的當前副本。這意味著,例如,如果您進行錯誤修復或改進,則必須手動將其應用於其他每個站點的源代碼文件夾。

我們的工具嘗試解決必須手動將更新的文件應用於每個源文件夾的問題。它能做什麼:

  1. 在指定的根文件夾(%UserProfile% Documents Web Sites)中搜索具有指定名稱(library.js)的所有文件。
  2. 對於名為library.js的所有文件,它會找到最近修改過的文件,並記下其文件哈希值。
  3. 所有其他名為library.js的文件(不是最新更新的副本)然後將其文件哈希值與最近的文件哈希值進行比較(在上一步中確定)。
  4. 如果文件散列值不同,則庫的相應副本將替換為最近更新的副本。

因為我們使用哈希值來比較文件,所以我們確信所替換的文件確實與最新的副本不同。例如,如果您要運行該進程並進行5次文件替換,則之後立即再次運行該進程將不會進行任何替換,因為文件哈希值現在是相同的。

更新到最新的複制工具

“更新到最新復制工具”工具是具有相同名稱的批處理腳本的修改版本(兩者都可以使用文章底部的鏈接下載),該版本已轉換為EXE文件以包含所需的Nirsoft HashMyFiles實用程序。必須使用指定的某些參數從命令行運行該工具。如果您只是通過雙擊運行EXE文件,您將收到一條消息,指出這一點。

要使用“更新到最新副本”,可以通過運行“UpdateToNewestCopy /?”來查看參數,其中顯示以下對話框:

唯一必需的參數是SourceFolder(例如%UserProfile% Documents Web Sites)和FileName(library.js)。但是,您可以通過添加其他開關來更改功能,如上所述。

例子

以下命令將在文件夾“C: users jfaulkner documents Code Files”中找到名為“Common.vb”的所有文件,執行替換但在覆蓋之前備份當前副本(此輸出是生成的本文頂部圖片):

UpdateToNewestCopy “C:usersjfaulknerdocumentsCode Files” Common.vb /B

以下命令執行與上面相同的搜索操作,但它僅報告將被替換但實際上不執行任何文件操作的文件:

UpdateToNewestCopy “C:usersjfaulknerdocumentsCode Files” Common.vb /V

假設有一個名為“C: Config FilesToSearch.txt”的文件,其中包含以下內容:

library.js Common.vb

以下命令將搜索當前用戶的my documents文件夾,並報告對“library.js”和“Common.vb”的任何更新,但實際上不會執行任何更新操作:

UpdateToNewestCopy “%UserProfile%Documents” “C:ConfigFilesToSearch.txt” /L /V

自動化流程

此過程是自動化的理想選擇。通過使用指定的設置創建計劃任務(無需特殊任務)並使其每天/每小時/每15分鐘運行一次(取決於您的要求),您可以將文件同步保持在真正的設置 - 忘記它時尚。

下載

更新到最新副本 - 修改後的可執行格式

更新到最新復制 - 源批處理文件(更多命令行導向)

Link
Plus
Send
Send
Pin