6

色付きのテキストを標準出力に出力するコマンドライン実行可能ファイルがあります。私が次のことをするとき...

my_executable.exe | Out-Host

...Out-Hostがすべての色付きの出力を削除していることがわかりました。これは、プログラムをパイプライン経由で送信せずに、プログラムの色付きの出力を表示したい場合に問題になります。

パイプラインを経由せずにコンソールプログラム/バッチファイルの色付きの出力を表示できる別の方法はありますか?

編集:

言い換えれば、私が欲しいのはこれです:

着色付き出力

しかし、Out-Hostはこれを引き起こします:

着色せずに出力

編集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の色付きの出力を呼び出し元に返さずに表示する方法です。

4

2 に答える 2

3
$exe = ".\my_executable.exe"
$args = ""
$process = Start-Process $exe $args -NoNewWindow -Wait -ErrorAction Stop -PassThru
if ($process.ExitCode -ne 0) {
    throw "FAILED: $exe $args"
}
于 2016-03-03T18:52:13.910 に答える
0

このOut-Hostコマンドは色付けをサポートしていないためWrite-Host、代わりにそれを使用することをお勧めします。

または、Out-Hostビジネスをやめて、ただ実行してください$result = .\my-script.ps1 | select -last 1

于 2012-06-28T17:24:21.810 に答える