É possível capturar o formato de saída cmd.exe (e talvez cores) no Powershell?

1

Se eu executar ng build -environment=localprod --base-href /Angular5Starter/ no prompt de comando, recebo a seguinte saída:

Noentanto,seeuexecutaromesmocomandodoPowershell:

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

Recebo uma saída bastante confusa:

Euseguiassugestõesdoscomentárioseexecuteiocomandocorretamente:

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

No entanto, o formato do texto de saída é o mesmo.

Pergunta: É possível capturar o formato de saída cmd.exe (e talvez cores) no Powershell?

    
por Alexei 19.04.2018 / 14:08

1 resposta

1

Percebi que minha postagem é um problema XY . O que eu realmente quero é uma saída legível, não colorida.

Eu tentei a solução Biswapriyo e ela funciona bem, exceto por duas coisas:

  • as cores são alteradas (não é grande coisa)
  • algumas sequências (perto do {}) estão em falta

O que parece resolver o problema é realmente remover as cores da saída do angular-cli, como indicado aqui :

$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

Isso tira todas as cores e mantém o texto original intacto, exceto de alguns espaços em branco extras aqui e ali.

    
por 25.04.2018 / 08:53