Удалить цвет из Tee-Object Powershell - PullRequest
0 голосов
/ 04 октября 2018
Start-Process "powershell" -ArgumentList "-noexit -executionpolicy bypass -windowstyle minimized -command `"&{Invoke-Expression `'.\$exe $Arguments`' | Tee-Object `'$Logs`'}`""

Эта команда работает, однако исполняемый файл .exe имеет цветной текст, например:

[0m

, что затрудняет анализ результирующего файла .log.

Есть ли способ Tee-Object в файл и удалить вывод цвета?

Кроме того, есть ли способ сделать это, сохранив цвет на консоли, так как консоль отображает те же символы (нетцвет).

Я искал вверх и вниз, переписал его сотней разных способов, и я не могу найти способ удалить его.

Кроме того, если естьэто более чистый способ написать запуск, кроме invoke-expression | Tee-Object

Кажется, он единственный, который работает для меня.

1 Ответ

0 голосов
/ 05 октября 2018
function Tee-ObjectNoColor {
    [CmdletBinding()]
    Param(
        [Parameter(Position=0, Mandatory=$true, ValueFromPipeline=$true)]
        [string]$InputObject,

        [Parameter(Position=1, Mandatory=$true)]
        [string]$FilePath
    )

  process{
        $InputObject = $InputObject -replace '\\[\d+(;\d+)?m'
        $InputObject | Out-File $FilePath -Append
        $InputObject | Out-Host
         }
}

Вот как я это сделал.Удаляет все цветные символы, очищает как на экране, так и в журнале.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...