我创建了一个FileSystemWatcher
对象,我已经注册了事件。我打算这个脚本在同一目录下运行一个执行mocha
。我可以使用以下命令从脚本执行mocha
$testProgram = "mocha"
& $testProgam
我得到了结果.. ...
3 test complete....
现在,当我使用相同的代码并将其包装在像这样的事件中时......
$changed = Register-ObjectEvent $watcher "Changed" -Action {
clear
write-host "Running Test Scripts.........."
write-host "Changed: $($eventArgs.FullPath)"
& testProgram
}
我明白了......
Running Test Scripts.......................
Changed: C:\files\main.js
& testProgram
的结果在哪里?
答案 0 :(得分:0)
我没有PS测试这个atm,所以如果我错了请纠正我。我可以想到你可以查看的多个问题:
testProgram
错过了前面的美元符号。$global:testProgram
。编辑:我找到了一个解决方案,您可以尝试解决可能的范围问题(到达您的操作块内的testprogram
变量)。 Shay Levi在Technet上发布了此代码示例。它使用-MessageData
参数将输入传递到您的操作块。这是他的代码示例:
#Use the -MessageData parameter:
Register-ObjectEvent ... -MessageData $foo
#Access the variable from within the action block
$event.MessageData