如何捕获从 Powershell 运行的控制台 exe 的二进制标准输出?

sco*_*obi 3 powershell

是否可以让 Powershell 将 exe 的标准输出读入 byte[] 而不是通常的文本处理行数组?

我能做的最好的事情是:

cmd /c foo.exe > foo.tmp
$b = [io.file]::readallbytes('foo.tmp')
del foo.tmp
Run Code Online (Sandbox Code Playgroud)

恶心,更不用说它不能流式传输。有更好的方法来做到这一点吗?

Kei*_*ill 5

从 PowerShell 团队获取了一些信息。简而言之,不幸的是,这并不容易。:-(

中等长度的答案是:http://poshcode.org/2175

长答案是:捕获并重定向二进制进程输出