1

Каждый раз, когда я меняю файл, мне нужно идти и вручную копировать его в другую папку, чтобы там была обновленная версия. Я знаю про mklink , но в моем случае это невозможно.

Есть ли способ перехватить файл bat, чтобы save событие файла в Windows? Потому что, если это возможно, я могу создать bat-файл для его автоматического копирования. Если нет, то какие еще варианты у меня могут быть, кроме mklink .

2 ответа2

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 каждый раз, когда вы запускаете компьютер, для этого достаточно будет выполнить элемент запуска или запланированное задание для его запуска.

0

Я бы порекомендовал использовать FreeFileSync для синхронизации этого файла. FreeFileSync имеет дополнительный инструмент под названием RealtimeSync, который запускает задачу синхронизации каждый раз, когда обнаруживает изменение в заданной папке. Вам нужно только создать задачу синхронизации для этого файла, а затем запустить RealtimeSync с этой задачей, и она будет «автоматически» копироваться при каждой модификации.

Полное руководство см. В разделе « Как синхронизировать файлы и папки с помощью FreeFileSync в Windows».

Важная сноска: хотя FreeFileSync является открытым исходным кодом и лицензируется по лицензии GPL, он поставляется в комплекте с OpenCandy PUP/PUA, поэтому либо устанавливайте его с отключенным сетевым подключением, либо обязательно снимите флажок с предложением установки crapware. Кроме того, вы можете просто распаковать установщик с помощью 7zip или PeaZip и просто запустить его без установки.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .