web-dev-qa-db-ja.com

Windowsでフォルダの変更を監視し、監視している場合はコマンドを実行する方法

LinuxMac についても同様の質問がありますが、私はここでWindowsソリューションを探しています。

問題は次のとおりです:フォルダーにいくつかの(js)スクリプトファイルを書き込み、そのフォルダーにファイルの変更や追加される新しいファイルがないかプログラムモニターで監視し、それが発生したときにコマンドを実行します(それらをすべて1つにコンパイルします)単一ファイル)。

ソリューションは:

  1. フォルダ内で、ファイルの変更と追加される新しいファイルの両方を監視します。
  2. 変更がある場合は、コマンドonlyを実行します。

組み込みのソリューション(JScriptやVBscriptのスニペットなど)か、インストールを必要としないソリューションが最適です。

32
Camilo Martin

トリックをするかもしれないベルヴェデーレと呼ばれるプログラムがあります。

http://ca.lifehacker.com/341950/belvedere-automates-your-self+cleaning-pc

これは、バックグラウンドで実行されるスタンドアロンのWindowsアプリです。

ダウンロードフォルダーを監視して、最終更新日が1日である特定の拡張子を持つファイルを探します。見つかったファイルは削除されますが、代わりにアクションを実行させることもできます。

3
dangowans

Log Monitorと呼ばれる古いプログラムで大成功しました。それは古く、ずっと前に捨てられました。しかし、それはかなり目的を果たします。

http://www.freeware-guide.com/download/index2.html

13
Bob

私はこの目的のために簡単なユーティリティを作成しました: https://github.com/benblamey/when_changed

使用法:when_changed(ファイルパス)(コマンド)(オプションのパラメーター)

例えばwhen_changed C:\ somedir\foo.txt myapp.exe bar wibble 123

7
Ben

.NETウォッチフォルダーを使用すると、これをコーディングするのは本当に簡単です。私は誰かがそのようなプログラムをしたと確信しています。

ちょうどあなたのためにこの宝石を見つけました http://www.guidingtech.com/9861/automate-folder-actions-windows-watch-4-folder/

6
bokan

私は現在試しています this app 、これは.NETを必要としますが、それは仕事をしているようです。

4
Camilo Martin

さらに別のツール: https://github.com/yankee42/Java-file-change-watcher

利点:プラットフォームに依存しない(Java)、小さい(10KB)。

免責事項:私は作者です

2
yankee

JScriptまたはVBScriptを使用して組み込みソリューションを実行する場合は、WMIイベントサブスクリプションを使用したファイルシステムの監視が必要です。基本的に、次のような変更が検出されたときにフォルダーを監視してアクションを実行するコードを記述します。

  • __InstanceCreationEvent
  • __InstanceDeletionEvent
  • __InstanceModificationEvent

...そしてこれらのイベントの発生を監視する間隔でスクリプトが実行されます。多くのリソースがありますが、VBScriptとPowershellのいくつかを次に示します。

2
mrTomahawk

これは一般的な要件なので、OS自体に便利なユーティリティが組み込まれていないことに驚いています。

とにかく、前に述べたように、私は過去に LogMonitor をうまく使用しました。しかし、私は このブログ投稿 の情報を見つけ、現在 Watch 4 Folder を使用しています。

うまくいけば、これはあなたを助けるでしょう。

2
Vijay

NirSoftには、Windowsでファイルの変更を監視するためのソフトウェアがあります。
FolderChangesView

FolderChangesViewは、選択したフォルダーまたはディスクドライブを監視し、フォルダーの監視中に変更、作成、または削除されるすべてのファイル名を一覧表示するシンプルなツールです。 FolderChangesViewは、選択したフォルダーへの読み取り権限がある限り、任意のローカルディスクドライブまたはリモートネットワーク共有で使用できます。

enter image description here

here から無料でダウンロードできます。
詳細

1
AminM

http://jnotify.sourceforge.net/ を使用して、OS固有のファイルシステムモニタリングイベントにサブスクライブできます。コードは古くなっていますが、まだ機能しています(少なくともWindows Server 2013r2では、昨日テストしていました)。

https://github.com/redbooth/jnotify にはjnotifyプロジェクトのgithub復活もありますが、スタンドアロンのデモアプリは提供されていませんが、(コミットログに従って)いくつかのバグにパッチを当てています。

Java7では、何らかのinotifyのようなファイルシステムウォッチも必要ですが、まだテストしていませんでした。

0
andrej