1

Если я запускаю ng build -environment=localprod --base-href /Angular5Starter/ в командной строке, я получаю следующий вывод:

Вывод командной строки

Однако, если я запускаю ту же команду из Powershell:

$ngBuildCommand = "ng build -environment=$($environment) --base-href /$($webSiteName)/"
Write-Host "Ng build command: ", $ngBuildCommand
cmd /c $ngBuildCommand

Я получаю довольно испорченный вывод:

Выход Powershell


Я следовал советам из комментариев и правильно выполнил команду:

$ngExe = "C:\Program Files\nodejs\ng.cmd"
& $ngExe build -environment="$environment" --base-href /$webSiteName/

Тем не менее, выходной текстовый формат остается тем же.

Вопрос: можно ли поймать выходной формат cmd.exe (и, возможно, цвета) в Powershell?

1 ответ1

1

Я понял, что мой пост - проблема XY. Что я действительно хочу, так это читаемый вывод, а не цветной.

Я попробовал Biswapriyo , и оно работает хорошо, за исключением двух вещей:

  • цвета меняются (не имеет большого значения)
  • некоторые строки (рядом с {}) отсутствуют

Похоже, что проблема решается, так как фактически отбрасывает цвета из вывода angular-cli, как показано здесь:

$ngExe = "C:\Program Files\nodejs\ng.cmd" 
$executionRes = & $ngExe build -environment="$environment" --base-href /$webSiteName/ | %{$_ -replace "\x1B\[([0-9]{1,2}(;[0-9]{1,2})?)?[mGK]"," "} | %{$_ -replace "     ", "`n"}
Write-Host $executionRes

Это приведет к удалению всех цветов и сохранению исходного текста без изменений, за исключением некоторых лишних пробелов здесь и там.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .