执行powershell invoke-expression

时间:2017-02-02 11:44:49

标签: .net powershell

在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
}

1 个答案:

答案 0 :(得分:0)

从调用角度来看,PowerShell主要是单线程的,因此没有简单的方法可以调用某些内容并并行查看。但是,您可以使用 PowerShell作业并在后台运行命令(使用Start-Job)。 通过这种方式,您可以轮询您的工作并在必要时取消它。

注意:调用作业可能会对性能产生影响,从而导致命令总体执行时间产生一些开销,因此根据您的情况,这可能会模糊您的实际意图,但是当您测量多个10秒而不是毫秒时这应该没事。

Measure-Command可用于获取总体执行时间,但StopWatch更准确。