Перенаправить два или более потоков 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, потому что файл заблокирован потоком предупреждений.
Есть ли способ объединить два (или более) выходных потоков в один поток и перенаправить результат в один и тот же файл?