Linux と Mac についても同様の質問がありますが、私はここでWindowsソリューションを探しています。
問題は次のとおりです:フォルダーにいくつかの(js)スクリプトファイルを書き込み、そのフォルダーにファイルの変更や追加される新しいファイルがないかプログラムモニターで監視し、それが発生したときにコマンドを実行します(それらをすべて1つにコンパイルします)単一ファイル)。
ソリューションは:
組み込みのソリューション(JScriptやVBscriptのスニペットなど)か、インストールを必要としないソリューションが最適です。
トリックをするかもしれないベルヴェデーレと呼ばれるプログラムがあります。
http://ca.lifehacker.com/341950/belvedere-automates-your-self+cleaning-pc
これは、バックグラウンドで実行されるスタンドアロンのWindowsアプリです。
ダウンロードフォルダーを監視して、最終更新日が1日である特定の拡張子を持つファイルを探します。見つかったファイルは削除されますが、代わりにアクションを実行させることもできます。
Log Monitorと呼ばれる古いプログラムで大成功しました。それは古く、ずっと前に捨てられました。しかし、それはかなり目的を果たします。
私はこの目的のために簡単なユーティリティを作成しました: https://github.com/benblamey/when_changed
使用法:when_changed(ファイルパス)(コマンド)(オプションのパラメーター)
例えばwhen_changed C:\ somedir\foo.txt myapp.exe bar wibble 123
.NETウォッチフォルダーを使用すると、これをコーディングするのは本当に簡単です。私は誰かがそのようなプログラムをしたと確信しています。
ちょうどあなたのためにこの宝石を見つけました http://www.guidingtech.com/9861/automate-folder-actions-windows-watch-4-folder/
私は現在試しています this app 、これは.NETを必要としますが、それは仕事をしているようです。
さらに別のツール: https://github.com/yankee42/Java-file-change-watcher
利点:プラットフォームに依存しない(Java)、小さい(10KB)。
免責事項:私は作者です
JScriptまたはVBScriptを使用して組み込みソリューションを実行する場合は、WMIイベントサブスクリプションを使用したファイルシステムの監視が必要です。基本的に、次のような変更が検出されたときにフォルダーを監視してアクションを実行するコードを記述します。
__InstanceCreationEvent
__InstanceDeletionEvent
__InstanceModificationEvent
...そしてこれらのイベントの発生を監視する間隔でスクリプトが実行されます。多くのリソースがありますが、VBScriptとPowershellのいくつかを次に示します。
これは一般的な要件なので、OS自体に便利なユーティリティが組み込まれていないことに驚いています。
とにかく、前に述べたように、私は過去に LogMonitor をうまく使用しました。しかし、私は このブログ投稿 の情報を見つけ、現在 Watch 4 Folder を使用しています。
うまくいけば、これはあなたを助けるでしょう。
http://jnotify.sourceforge.net/ を使用して、OS固有のファイルシステムモニタリングイベントにサブスクライブできます。コードは古くなっていますが、まだ機能しています(少なくともWindows Server 2013r2では、昨日テストしていました)。
https://github.com/redbooth/jnotify にはjnotifyプロジェクトのgithub復活もありますが、スタンドアロンのデモアプリは提供されていませんが、(コミットログに従って)いくつかのバグにパッチを当てています。
Java7では、何らかのinotifyのようなファイルシステムウォッチも必要ですが、まだテストしていませんでした。