如何在 PowerShell 中调用命令并获取输出而无需等待完成?

如何在 PowerShell 中调用命令并获取输出而无需等待完成?

我使用以下代码运行命令并获取输出:

$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
    ...
}

答案1

使用命令 Tee 对象 (球座):

将命令输出保存在文件或变量中并将其发送到管道。

用于 :

.\SomeExecutable.exe | Tee-Object -Variable result

相关内容