从功能输出到控制台,保留颜色

时间:2013-06-13 12:16:40

标签: powershell console

我在PowerShell中运行msbuild,在函数内部:

function Run-MSBuild()
{
    msbuild.exe (lots of params)
}

Run-MSBuild

效果很好,我在控制台上看到了彩色的MSBuild输出。现在,我想知道它花了多长时间:

$time = Measure-Command { Run-MSBuild }

可以使用,但我不再看到MSBuild输出了。

尝试1:管道到Write-Host

function Run-MSBuild()
{
    msbuild.exe (lots of params) | Write-Host
}

结果1:我在控制台上看到MSBuild输出,但颜色丢失了。

尝试2:替换Measure-Command

$timer = [diagnostics.stopwatch]::startnew()
Run-MSBuild
$time = $timer.Elapsed

结果2:有效,但有点难看。

有任何方法可以达到这个目的吗?

1 个答案:

答案 0 :(得分:1)

在函数中包含timing命令?

function Run-MSBuild
{
    $start = Get-Date
    msbuild.exe $args
    $End = Get-Date

    $End-$Start
}