我想看一个文件夹与powershell,我是一个PS初学者。
当我启动脚本时,这个脚本就能工作一次。
但是,当我由于更改了一些脚本代码而不得不重新启动脚本时,我会得到以下错误消息:
Cannot subscribe to the specified event. A subscriber with the source identifier 'FileChanged' already exists.我试过:
这在脚本的顶部:
Unregister-Event -SourceIdentifier FileChanged不管用。
我如何正确地注销事件,以便我可以经常运行我的脚本,并处理以前注册的事件?
码
$folder = "C:\temp"
$Watcher = New-Object IO.FileSystemWatcher $folder -Property @{
IncludeSubdirectories = $true
NotifyFilter = [IO.NotifyFilters]'FileName, LastWrite'
}
$onChanged = Register-ObjectEvent $Watcher Changed -SourceIdentifier FileChanged -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
#Move-Item $path -Destination $destination -Force -Verbose
}发布于 2015-10-10 16:12:07
好吧,看看你想要实现什么.要回答您原来的问题,您需要执行以下操作才能取消事件的注册。
Get-EventSubscriber -SourceIdentifier "filechanged" | Unregister-Event我不得不问你为什么要对代码做1000次调整。如果您试图注册1000个要监视的不同事件,那么使用++修饰符循环和增加变量将更有意义。
如果这是您要完成的任务,我已经实现了这一点,如果您需要的话,可以共享一些代码。
https://stackoverflow.com/questions/33033901
复制相似问题