在powershell中有什么类型的事件监视Invoke-Expression吗?
我正在寻找一个可执行文件,并需要一些关于它的附加信息,例如执行时间和主要是重要的设置超时,所以如果表达式运行得太长,它将停止执行?
类似的东西:
Function Run
{
Start-Transcript -path "C:\test.txt" -append
$start = 0
$timeoutInSec = 10
while
{
# something to increase time
# if time > timeout kill process
Invoke-Expression "C:\test.exe -verbose -page"
}
Stop-Transcript
}
答案 0 :(得分:0)
从调用角度来看,PowerShell主要是单线程的,因此没有简单的方法可以调用某些内容并并行查看。但是,您可以使用 PowerShell作业并在后台运行命令(使用Start-Job
)。
通过这种方式,您可以轮询您的工作并在必要时取消它。
注意:调用作业可能会对性能产生影响,从而导致命令总体执行时间产生一些开销,因此根据您的情况,这可能会模糊您的实际意图,但是当您测量多个10秒而不是毫秒时这应该没事。
Measure-Command
可用于获取总体执行时间,但StopWatch
更准确。