как вывести строку в переменную и консоль одновременно

есть ли простой способ в 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
10
задан mishkin 17 August 2011 в 13:45
поделиться