0

たくさんのフォルダに変更があったときに(メールを送信するなど)、いくつかのことをしたいと思います。それは多かれ少なかれ働いています。問題は、通知が多すぎることです。私はそれをハックして追跡し、重複を無視できることを知っていますが、それを正常に機能させる方法があるはずです。

コード:

$watcher = New-Object System.IO.FileSystemWatcher
$watcher.Path = "s:\Reporting\Report Output Files\"
$watcher.IncludeSubdirectories = $true
$watcher.EnableRaisingEvents = $true

$changed = Register-ObjectEvent $watcher "Changed" -Action {
write-host "Changed: $($eventArgs.FullPath)"
}
$created = Register-ObjectEvent $watcher "Created" -Action {
write-host "Created: $($eventArgs.FullPath)"
}

while($true) {
start-sleep -s 2
}

ファイルを作成したときの結果:

Created: s:\Reporting\Report Output Files\IT\Scheduled_IO.log
Changed: s:\Reporting\Report Output Files\IT\Scheduled_IO.log
Changed: s:\Reporting\Report Output Files\IT\Scheduled_IO.log
Changed: s:\Reporting\Report Output Files\IT\Scheduled_IO.log
Changed: s:\Reporting\Report Output Files\IT

実際にはファイルが作成されているだけなのに、なぜ3つの変更が行われるのか(ディレクトリレベルの変更が行われる理由がわかります)はわかりません。ファイルを変更すると、dupも変更されます。

4

0 に答える 0