Redirecione dois ou mais fluxos do Powershell que não sejam o fluxo de saída para o mesmo arquivo
No Powershell, podemos combinar o fluxo de saída padrão com qualquer outro fluxo e, em seguida, redirecionar (gravar) o resultado para o mesmo arquivo.
Exemplos:
Powershell -File "C:\myscript.ps1" 2>&1> "C:\log.txt"
Powershell -File "C:\myscript.ps1" 3>&2>&1> "C:\log.txt"
Suponha que eu useEscrever erro eAviso de gravação instruções em myscript.ps1 e desejo gravar apenas os erros e os avisos no mesmo arquivo.
Nota: se não me engano, 1 é o fluxo de saída, 2 é o fluxo de erro e 3 o fluxo de aviso.
Minha primeira tentativa lógica foi usar3> & 2> - se combinar 1 e 2 funciona, por que não 3 e 2? Ver abaixo:
Powershell -File "C:\myscript.ps1" 3>&2> "C:\log.txt"
Contudo,3> & 2> não funciona como um operador de redirecionamento válido.
Eu poderia tentar:
Powershell -File "C:\myscript.ps1" 3>"C:\warninglog.txt" 2>"C:\errorlog.txt"
mas eu realmente quero escrever no mesmo arquivo.
Se eu tentar executar:
Powershell -File "C:\myscript.ps1" 3>"C:\log.txt" 2>"C:\log.txt"
parece que o fluxo de erro (2) nunca é gravado em log.txt porque o arquivo está bloqueado pelo fluxo de aviso.
Existe uma maneira de combinar dois (ou mais) fluxos de saída em um único fluxo e redirecionar o resultado para o mesmo arquivo?