
Каждый раз, когда я изменяю файл, мне нужно идти и вручную копировать его в другую папку, чтобы обновленная версия существовала там. Я знаю о 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для синхронизации этого файла. FreeFileSync имеет дополнительный инструмент RealtimeSync, который запускает задачу синхронизации каждый раз, когда обнаруживает изменение в данной папке. Вам нужно только создать задачу синхронизации для этого файла, а затем запустить RealtimeSync с этой задачей, и он будет «автоматически» копироваться каждый раз при изменении.
Для полного руководства см.Как синхронизировать файлы и папки с помощью FreeFileSync в Windows
Важное примечание: хотя FreeFileSync имеет открытый исходный код и распространяется по лицензии GPL, он поставляется в комплекте с OpenCandy PUP/PUA, поэтому либо устанавливайте его с отключенным сетевым подключением, либо убедитесь, что вы сняли галочку с предложения установки хлама. Кроме того, вы можете просто распаковать установщик с помощью 7zip или PeaZip и запустить его без установки.