Возможно, в PowerShell этого не сделать.
Если у меня есть файл verboseTest.ps1
[CmdletBinding()] # CmdletBinding attribute enables -verbose flag
Param()
Write-Verbose 'verbose test'
Если я позвоню .\verboseTest.ps1
, я ничего не увижу, как ожидалось.
Если я позвоню .\verboseTest.ps1 -Verbose
, я увижу вывод.
VERBOSE: подробный тестовый внешний
, как и ожидалось.
Но еслиЯ звоню .\verboseTest.ps1 4>&1
Я не знаю.Многословный поток потерян.
Теперь Info ведет себя совершенно иначе.
У меня есть файл infoTest.ps1
, и он ведет себя разумно.
[CmdletBinding()] # Add CmdletBinding attribute
Param()
Write-Information 'info test outer'
Если я позвоню .\infoTest.ps1
, я ничего не вижу, как ожидалось.
Если я вызываю .\infoTest.ps1 -InformationAction 'Continue'
, что аналогично флагу -Verbose
, он завершается успешно и выводит info test outer
на консоль.
Иесли я позвоню .\infoTest.ps1 6>&1
, то также выводит info test outer
на консоль!Так что каким-то образом «информационный» поток ведет себя совершенно иначе, чем «подробный».
Поведение информационного потока имеет смысл.Команды записи информации пишут в поток, и я могу перенаправить его или просмотреть или нет, как мне кажется нужным.«Многословный» нет!Я должен включить показ его в выводе, чтобы перенаправить его?Я делаю что-то неправильно?Как это имеет смысл?
Имею ли я для включения подробного предпочтения для перенаправления вывода?И если да, могу ли я сделать это внутри метода или он изменяется глобально в течение сеанса?