9
如何处理使用PowerShell v2的.NET对象引发的事件?有人可以指点我一个简单的代码示例吗?使用PowerShell处理事件?
如何处理使用PowerShell v2的.NET对象引发的事件?有人可以指点我一个简单的代码示例吗?使用PowerShell处理事件?
查看Register-ObjectEvent cmdlet上的文档。一定要使用-full参数。它使用的包括本一些很好的例子:
$timer = New-Object Timers.Timer
$timer.Interval = 500
$timer.Start()
$job = Register-ObjectEvent -inputObject $timer -eventName Elapsed `
-sourceIdentifier Timer.Random `
-Action {$random = Get-Random -Min 0 -Max 100; $random}
Receive-Job $job
你可能也想看看这个PowerShell Eventing QuickStart blog post。请注意,某些cmdlet名称已更改,例如Get/Remove-PsEvent现在只是Get/Remove-Event。
我不明白这个脚本的输出应该是什么。控制台中没有显示。我如何读取'$ random'的值? – 2012-09-06 21:58:44
@isme在作业上使用调用操作符:'&$ job.module {$ random}'。 – 2012-09-06 22:03:49
@isme对自己说话,呃? :-)顺便说一句,我只是修改了使用Receive-Job cmdlet的答案。但你的建议也可以。 – 2012-09-06 22:05:30