У меня есть исполняемый файл командной строки, который печатает цветной текст до стандартного. Когда я делаю следующее ...Сохранять окраску при использовании Out-Host Powershell
my_executable.exe | Out-Host
... Я считаю, что Out-Host удаляет все цветные выход. Это проблема, когда я хочу отображать цветной вывод программы, не отправляя ее по конвейеру.
Есть ли другой способ, который позволяет мне отображать цветные выходные данные консольных программ/пакетных файлов, не отправляя их по конвейеру?
EDIT:
Другими словами, то, что я хочу это:
Но Out-Host вызывает это:
EDIT 2:
Вот почему я c an't просто позвоните my_executable.exe:
У меня есть сценарий в файле .ps1, подобный следующему
param($someValue)
# do some things
.\my_executable.exe | Out-Host
# do some more things
return 1
Теперь, когда я делаю следующее:
$result = .\my-script.ps1
$ результат 1. Если я не использую Out-Host, $ result будет выводить файл my_executable.exe с 1 в конце. Out-Host позволяет мне отображать вывод my_executable.exe , не возвращая его вызывающему абоненту. Я хочу, чтобы отобразить цветной вывод my_executable.exe, не возвращая его вызывающему.
Почему вы используете Out-Host? Из описания: «Поскольку Out-Host по умолчанию, вам не нужно указывать его, если вы не хотите использовать его параметры для изменения отображения». Поскольку вы не используете параметры команды, это кажется излишним. – David
Я использую Out-Host, потому что, если этого не произойдет, результат команды будет передаваться по конвейеру. В моей ситуации с сценариями это плохо. – Phil
Возможно, вы могли бы использовать tee-object вместо этого? – David