質問: 例えば、SassやCoffeeScriptのファイル保存時のコンパイルなどを想定していますが、できるだけ特定の実行環境(Nodeとか)に依存せず、導入が簡単なものが望ましいです。 OSデフォルトの機能だけで実現できればそれが一番よいです。 WindowsのバージョンはVista(Server 2008)以降を想定しています。特定のバージョンのみで動作する場合には、その旨記載していただければ有難いです。
回答: 確認まではしていませんが、Vista 以降でしたら`System.IO.FileSystemWatcher`を powershellから使えるかもしれません。 参考までに同期処理だと以下の様になります。 ( WaitForChanged 中は ctrl-C で止まらないので、ウィンドウを閉じるか、ctrl-cを押したのち、監視対象のファイルなどの変更を行ってください ) 実際には非同期処理の方がいいかと思います。 ``` $w = New-Object System.IO.FileSystemWatcher $w.Path = "c:\\path\\to\\dir" $w.Filter = "*.*" $w.NotifyFilter = [System.IO.NotifyFilters]::LastWrite while(1){ $changeResult = $w.WaitForChanged([System.IO.WatcherChangeTypes]::All) # $changeResult.TimeOut が trueなら、タイムアウト # 好みのコマンドを実行する。 .\run_something.bat $changeResult.Name } ```