【发布时间】:2017-12-30 08:29:45
【问题描述】:
我想在所有这些取消注册任何自定义Register-ObjectEvent 的代码之前运行一个命令;一些类似于Remove-Jobs * 的命令用于对象事件。我想这样做是因为如果我尝试注册$watcher 两次,它会引发错误。没有名为Get-ObjectEvent 的命令,否则我不会问这个
$folder = "C:\some\path\to\folder"
# File it is watching
$filter = "flag.txt"
# Instantiate Watcher
$Watcher = New-Object IO.FileSystemWatcher $folder, $filter -Property @{
IncludeSubdirectories = $false
NotifyFilter = [IO.NotifyFilters]'FileName, LastWrite'
}
# EVENT: $filter is created
$onCreated = Register-ObjectEvent $Watcher Created -SourceIdentifier FileCreated -Action {
$path = $Event.SourceEventArgs.FullPath
$name = $Event.SourceEventArgs.Name
$changeType = $Event.SourceEventArgs.ChangeType
$timeStamp = $Event.TimeGenerated
Write-Host "The file '$name' was $changeType at $timeStamp"
Write-Host $path
}
【问题讨论】:
标签: powershell object events