Перенаправить два или более потоков Powershell, кроме выходного потока, в один файл

В Powershell мы можем объединить стандартный поток вывода с любым другим потоком, а затем перенаправить (записать) результат в тот же файл.

Примеры:

Powershell -File "C:\myscript.ps1" 2>&1> "C:\log.txt"  
Powershell -File "C:\myscript.ps1" 3>&2>&1> "C:\log.txt"

Предположим, я используюWrite-Error а такжеWrite-Warning заявления в myscript.ps1 и я хочу записать только ошибки и предупреждения в один и тот же файл.

Примечание: если я не ошибаюсь, 1 - выходной поток, 2 - поток ошибок и 3 - поток предупреждений.

Моей первой логической попыткой было использовать3> & 2> - если объединение 1 и 2 работает, почему бы не 3 и 2? Увидеть ниже:

Powershell -File "C:\myscript.ps1" 3>&2> "C:\log.txt"

Тем не мение,3> & 2> не работает как действительный оператор перенаправления.

Я мог бы обойти, пытаясь:

Powershell -File "C:\myscript.ps1" 3>"C:\warninglog.txt" 2>"C:\errorlog.txt"
но я действительно хочу написать в тот же файл.

Если я попытаюсь бежать:

Powershell -File "C:\myscript.ps1" 3>"C:\log.txt" 2>"C:\log.txt" 

кажется, что поток ошибок (2) никогда не записывается в log.txt, потому что файл заблокирован потоком предупреждений.

Есть ли способ объединить два (или более) выходных потоков в один поток и перенаправить результат в один и тот же файл?

Ответы на вопрос(2)

Ваш ответ на вопрос