
每次更改文件時,我都需要手動將其複製到另一個資料夾,以便更新的版本存在其中。我知道mklink
,但這對我來說是不可行的。
有沒有辦法將bat檔案與save
Windows中的檔案事件掛鉤?因為如果可能的話,我可以建立一個bat檔案來自動複製該檔案。如果沒有,除了mklink
.
答案1
您可以在 powershell 中執行此操作。
首先,從這裡取得 FileSystemWatcher :https://gallery.technet.microsoft.com/scriptcenter/Powershell-FileSystemWatche-dfd7084b
你不需要所有這些 - 我已經將其精簡為這個,這應該對你有用:
$destination = "\\Location\file\should\go"
$folder = 'c:\scripts\test' # Enter the root path you want to monitor.
$filter = '*.*' # Enter filename here.
$fsw = New-Object IO.FileSystemWatcher $folder, $filter -Property @{IncludeSubdirectories = $false;NotifyFilter = [IO.NotifyFilters]'FileName, LastWrite'}
Register-ObjectEvent $fsw Changed -SourceIdentifier FileChanged -Action
{
$name = $Event.SourceEventArgs.Name
Copy-Item $name $destination -force
}
僅當偵測到檔案發生變更時才會觸發。
我還沒有測試過這個,但它應該足夠接近讓你繼續。
每次啟動機器時,您都需要執行這個 powershell,啟動項目或排程任務來啟動它就可以了。
答案2
我建議使用免費文件同步保持該文件同步。 FreeFileSync 有一個名為 RealtimeSync 的輔助工具,每次偵測到給定資料夾中的變更時都會觸發同步任務。您只需為該檔案建立同步任務,然後使用該任務執行 RealtimeSync,每次修改時都會「自動」複製該檔案。
完整教學請參見如何在 Windows 中使用 FreeFileSync 同步檔案和資料夾
重要註腳:雖然 FreeFileSync 是開源的,並且在 GPL 下獲得許可,但它與 OpenCandy PUP/PUA 捆綁在一起,因此要么在禁用網路連接的情況下安裝它,要么確保取消選中垃圾軟體安裝選項。另外,您可以使用 7zip 或 PeaZip 解壓縮安裝程序,然後執行它而不進行安裝。