powershell - 使用 Powershell Out-Host 时保留颜色

标签 powershell scripting

我有一个命令行可执行文件,可以将彩色文本打印为标准输出。当我做以下...
my_executable.exe | Out-Host
...我发现 Out-Host 删除了所有彩色输出。当我想显示程序的彩色输出而不通过管道发送它时,这是一个问题。

有没有另一种方法可以让我显示控制台程序/批处理文件的彩色输出而不通过管道发送?

编辑:

换句话说,我想要的是:

Output with coloring

但是 Out-Host 导致了这个:

Output without coloring

编辑2:

这就是为什么我不能只调用 my_executable.exe 的原因:

我在 .ps1 文件中有一个类似于以下内容的脚本

param($someValue)

# do some things
.\my_executable.exe | Out-Host 
# do some more things
return 1

现在,当我执行以下操作时:
$result = .\my-script.ps1

$result 为 1。如果我不使用 Out-Host,$result 将是 my_executable.exe 的输出,最后为 1。 Out-Host 允许我显示 my_executable.exe 的输出而不将其返回给调用者。我想要的是一种显示 my_executable.exe 的彩色输出而不将其返回给调用者的方法。

最佳答案

$exe = ".\my_executable.exe"
$args = ""
$process = Start-Process $exe $args -NoNewWindow -Wait -ErrorAction Stop -PassThru
if ($process.ExitCode -ne 0) {
    throw "FAILED: $exe $args"
}

关于powershell - 使用 Powershell Out-Host 时保留颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11234062/

相关文章:

Powershell start-job -scriptblock 无法识别同一文件中定义的函数?

windows - 在继续批处理脚本之前如何等待服务/进程启动?

bash - 计算两个文件中数字的差异

bash - bash 如何知道我的变量名在哪里结束?

user-interface - 您使用什么LogParser UI?

search - 在文件中查找唯一字符

iis - 如何使用Powershell脚本执行IISRESET

Powershell:根据属性过滤属性

powershell - Set-AzureSubscription 出错 - ForbiddenError : The server failed to authenticate the request.

powershell - powershell:创建具有语法错误的通用哈希集?