【发布时间】:2015-08-03 20:11:51
【问题描述】:
我是 PowerShell 新手,我正在尝试使用 System.IO.FileSystemWatcher 来监视指定文件夹中是否存在文件。但是,一旦检测到文件,我想立即停止监视此文件夹并停止 FileSystemWatcher。该计划是将 PowerShell 脚本合并到 SQL 代理中,以使用户能够恢复自己的数据库。基本上我需要知道一旦找到一个文件就停止 FileSystemWatcher 监视的命令。这是目前为止的脚本。
### SET FOLDER TO WATCH + FILES TO WATCH + SUBFOLDERS YES/NO
$watcher = New-Object System.IO.FileSystemWatcher
$watcher.Path = "C:\TriggerBatch"
$watcher.Filter = "*.*"
$watcher.IncludeSubdirectories = $true
$watcher.EnableRaisingEvents = $true
### DEFINE ACTIONS AFTER A EVENT IS DETECTED
$action = { $path = $Event.SourceEventArgs.FullPath
$changeType = $Event.SourceEventArgs.ChangeType
$logline = "$(Get-Date), $changeType, $path"
Add-content "C:\log2.txt" -value $logline
}
### DECIDE WHICH EVENTS SHOULD BE WATCHED + SET CHECK FREQUENCY
$created = Register-ObjectEvent $watcher Created -Action $action
while ($true) {sleep 1}
## Unregister-Event Created ??
##Stop-ScheduledTask ??
【问题讨论】:
标签: powershell filesystemwatcher