如何调用可执行文件并捕获结果,同时在控制台上查看可执行文件的输出?

时间:2015-07-27 20:12:30

标签: powershell

我有一个PS脚本,它将运行各种单元测试。这将以可读的方式显示屏幕上的输出

$strTests = @(
"test1.dll",
"test2.dll"
)

foreach($test in $strTests)
{
    packages\xunit.runner.console.2.0.0\tools\xunit.console $test
}

但是我想修改此脚本,以便在测试失败时,它不会继续运行其他测试。我试过了:

    $result = packages\xunit.runner.console.2.0.0\tools\xunit.console $test

然而,这会阻止输出进入屏幕。我曾尝试使用Write-Host来显示内容,但它的表现方式并不像以前的版本那么漂亮。另外,它只是在运行结束时而不是同时转储输出。

如果失败,我还想检查运行和中断的结果。

1 个答案:

答案 0 :(得分:1)

您需要的是cmdlet tee-object,它允许您指定要输出到的管道数据的路径,或者保存管道数据的变量名称。所以你的命令看起来像这样:

packages\xunit.runner.console.2.0.0\tools\xunit.console $test | Tee-Object -Variable Results

然后您的输出将照常转到屏幕,并存储在$Results变量中。