gpt4 book ai didi

powershell - 取消注册已注册的 filewatcher 事件不起作用

转载 作者:行者123 更新时间:2023-12-01 22:37:25 24 4
gpt4 key购买 nike

我想用 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
}

最佳答案

好的,看看您想要实现的目标...要回答您原来的问题,您需要执行以下操作来取消注册该事件。

Get-EventSubscriber -SourceIdentifier "filechanged" | Unregister-Event

我想问为什么你必须对代码进行 1000 次调整。如果您尝试注册要监视的 1000 个不同事件,则使用++ 修饰符循环并递增变量会更有意义。

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

关于powershell - 取消注册已注册的 filewatcher 事件不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33033901/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com