首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >注销已注册的文件收集程序事件不起作用

注销已注册的文件收集程序事件不起作用
EN

Stack Overflow用户
提问于 2015-10-09 08:51:33
回答 1查看 6.2K关注 0票数 5

我想看一个文件夹与powershell,我是一个PS初学者。

当我启动脚本时,这个脚本就能工作一次。

但是,当我由于更改了一些脚本代码而不得不重新启动脚本时,我会得到以下错误消息:

代码语言:javascript
复制
Cannot subscribe to the specified event. A subscriber with the source identifier 'FileChanged' already exists.

我试过:

这在脚本的顶部:

代码语言:javascript
复制
Unregister-Event -SourceIdentifier FileChanged

不管用。

我如何正确地注销事件,以便我可以经常运行我的脚本,并处理以前注册的事件?

代码语言:javascript
复制
$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
}
EN

回答 1

Stack Overflow用户

发布于 2015-10-10 16:12:07

好吧,看看你想要实现什么.要回答您原来的问题,您需要执行以下操作才能取消事件的注册。

代码语言:javascript
复制
Get-EventSubscriber -SourceIdentifier "filechanged" | Unregister-Event

我不得不问你为什么要对代码做1000次调整。如果您试图注册1000个要监视的不同事件,那么使用++修饰符循环和增加变量将更有意义。

如果这是您要完成的任务,我已经实现了这一点,如果您需要的话,可以共享一些代码。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33033901

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档