У меня есть один скрипт PowerShell (2.0), вызывающий другой. Я хочу получить обратно не только основной вывод, но и дополнительный объект, который я могу использовать отдельно, например, для отображения итоговой строки в сообщении.
Давайте в качестве вызываемого скрипта используем Test2.ps1:
param([String]$SummaryLine)
$Issues = "Potentially long list of issues"
$SummaryLine = "37 issues found"
$Issues
И Test1.ps1 как скрипт, который его вызывает:
$MainOutput = & ".\Test2.ps1" -SummaryLine $SummaryOutput
$MainOutput
$SummaryOutput
Выход просто:
Potentially long list of issues
Хотя параметр $ SummaryLine заполняется Test2, $ SummaryOutput остается неопределенным в Test1.
Определение $ SummaryOutput перед вызовом Test2 не помогает; он просто сохраняет значение, назначенное до вызова Test2.
Я пытался настроить $ SummaryOutput и $ SummaryLine в качестве переменных [ref] (как, очевидно, можно сделать с функциями), но свойство $ SummaryOutput.Value после вызова Test2 равно $ null.
Возможно ли в PowerShell возвращать значение параметра? Если нет, каковы обходные пути? Непосредственное присвоение родительской переменной в Test2?