2009-09-25 77 views

回答

11

查看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。

+0

我不明白这个脚本的输出应该是什么。控制台中没有显示。我如何读取'$ random'的值? – 2012-09-06 21:58:44

+0

@isme在作业上使用调用操作符:'&$ job.module {$ random}'。 – 2012-09-06 22:03:49

+0

@isme对自己说话,呃? :-)顺便说一句,我只是修改了使用Receive-Job cmdlet的答案。但你的建议也可以。 – 2012-09-06 22:05:30