Powershell监控文件系统更改

时间:2013-02-21 21:53:29

标签: powershell automation powershell-v2.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个更改(我可以看到为什么我得到目录级别更改),而实际上它只是一个正在创建的文件。当我更改文件时,我也会进行重复更改。

0 个答案:

没有答案