我使用以下代码运行命令并获取输出:
$result = Invoke-Command { .\SomeExecutable.exe }
Write-Output $result
它有效,但主要问题是我必须等待完成(需要几分钟)才能获得任何结果。如果我使用:
Invoke-Command { .\SomeExecutable.exe }
这样要好得多(一旦程序输出一行,它就会写在 PowerShell 控制台内)。
缺点是我不能再将该输出存储在变量中。理想情况下,我想要这样的内容:
foreach($line in Invoke-Command { ... })
{
Write-Output $line
//do something with $line
...
}