Windowsでファイル保存時にbatファイルを自動的に実行することは可能ですか?

Windowsでファイル保存時にbatファイルを自動的に実行することは可能ですか?

ファイルを変更するたびに、手動で別のフォルダにコピーして、更新されたバージョンがそこに存在するようにする必要があります。 については知っていますmklinkが、私の場合は実行できません。

Windows でbat ファイルをファイルのイベントにフックする方法はありますかsave? それが可能であれば、ファイルを自動的にコピーする 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 がバンドルされているため、ネットワーク接続を無効にしてインストールするか、または、crapware インストール オファーのチェックを外してください。また、7zip または PeaZip を使用してインストーラーを解凍し、インストールせずに実行することもできます。

関連情報