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