есть ли простой способ в PowerShell вывести строку в переменную и консоль одновременно?
Я хочу записать вывод моего скрипта в переменную, чтобы я мог проанализировать его в конце скрипта, сохранить его в файл журнала, а также отправить электронное письмо оператору.
Я намерен создать переменную $ output и добавить к нему любые выходные строки, а также немедленно вывести на консоль что-то вроде
$output="Process started"
$output=+"Doing step 1"
"Doing step 1"
$output=+"Doing step 2"
"Doing step 2"
, так что в конце я могу сохранить $ output в файл журнала, отправить его по электронной почте и проанализировать его.
Я играл с tee-объектом, который может работать для этой цели, но, к сожалению, он перезапишет мою переменную $ output вместо добавления к ней строки.
ОБНОВЛЕНИЕ Это последнее решение, которое я решил использовать - спасибо manojlds!
$script:output = ""
filter mylog {
$script:output+= $_+"`n"
return $_
}
"doing step {0}" -f 1 | mylog
"doing step {0}" -f 2 | mylog
"doing step {0}" -f 3 | mylog
#in the end of the script
$script:output