在變更時連續將所有檔案變更從一個資料夾複製到另一個資料夾 (Windows)

在變更時連續將所有檔案變更從一個資料夾複製到另一個資料夾 (Windows)

我正在開發一個大型 Java Web 應用程序,該應用程式處於集中版本控制之下,但源文件用於構建和運行實際伺服器,然後伺服器在運行時將我處理的所有文件複製到隨機臨時目錄中。

我的問題是,我需要重建這個巨大的應用程式以查看對我的文件的任何更改,或者跟踪我的所有更改並將已更改的文件複製回其源位置,然後再將它們提交回源代碼管理。

我的問題是:是否有一個我可以運行的命令列腳本來監視來源資料夾中的任何更改並自動將更改的檔案複製到臨時資料夾 X?

這個想法是為了消除必須手動緩解兩個位置問題的人為故障點。

答案1

我建議免費文件同步,它似乎能夠創建一個腳本,每隔幾秒鐘就會自動同步兩個資料夾。我個人還沒有玩過它,但它看起來很有希望。

在此輸入影像描述 在此輸入影像描述

答案2

您有考慮過使用 RoboCopy 嗎?http://ss64.com/nt/robocopy.html

RoboCopy 可以設定在經過一段設定的時間和/或資料集發生多次變更後複製資料。

/MON:n : 監視來源;當看到超過 n 個變更時再次運行。
/MOT:m : 監視來源;如果發生變化,請在 m 分鐘後再次運行。

答案3

您可能還想看看(老化)德爾塔複製客戶端和伺服器。基本上,它是一個類似Linux的同步Windows 的實現,可編寫腳本(如果需要,可以使用 Windows 調度程序),其主要優點是僅更改的部分傳輸修改後的檔案(是的,檔案!)。這可以為大型專案節省大量流量。當然,缺點是它必須事先建置並傳輸檔案清單。

此外,還有一些(小)警告:

  • 由於它是較舊的軟體,您可能需要更換cygwin1.dll在 Windows 機器上。 (僅如果您在 Linux 和 Windows 之間同步檔案。它使用西格溫作為當時無法正確處理 16 位元 Unicode/UTF-8 檔案名稱轉換的底層框架。
  • 這對用戶來說不太友好,你應該看看 Linux'rsync 線上說明頁充分發揮其潛力。
  • 在 Windows 上,它需要一台「客戶端」和一台「伺服器」機器。
  • 如果伺服器是 Linux 機器,則必須進行設定同步正確。
  • 不支援 Windows 的捲影複製(不過可能不需要)。

嗯,它也有優點(這就是為什麼我仍然每天使用它):

  • 與 *NIX rsync 和 rsyncd 完全相容。經過驗證、眾所周知且高效的同步系統。仍然。
  • 保持較小的開銷:只有更改的資料(甚至在文件內部!)透過網路傳輸。因此,如果您進行遠端辦公或透過慢速連接連接到伺服器,這也非常好。
  • 顯然,故障安全。多年來,我已經同步了許多 GB 的數據,並且在「修補」目標檔案時沒有出現任何缺陷。即使一開始我覺得這個概念有點令人擔憂。
  • 我仍然每天使用 DeltyCopy 將檔案從 Windows 電腦備份到中央 Linux 伺服器和 Windows 2003 伺服器。如果安裝正確,效果非常好且安全。

好吧,由你決定。玩得開心! (並讓我們了解 FreeFileSync!)

答案4

一個有用的命令是xcopy /m src\* dest.這會將所有檔案從 src 複製到 dest 並且清除所有 src 檔案的存檔位。每當您觸摸 src 檔案時,Windows 都會自動設定存檔位。下次運行時xcopy /m它只會複製更改的檔案。

如果你想連續運行它,寫一個小腳本,例如

@echo off
echo Watching for changes to %1 ...
:top
xcopy /m /y %1\* %2 | find /v "File(s) copied"
timeout /t 2 >nul
goto :top

相關內容