Вывод сценария PowerShell без усечения

#powershell

#powershell

Вопрос:

У меня есть мой сценарий PowerShell, как показано ниже, в файле myps.ps1 .

 Invoke-Expression "terraform apply -auto-approve" -OutVariable COMMAND_OUTPUT 2>amp;1 >$null
  

С помощью этого скрипта я пытаюсь записать как стандартную ошибку, так и стандартный вывод в переменную $COMMAND_OUTPUT . Но когда terraform apply команда выдает ошибку, записывается усеченное сообщение об ошибке, заканчивающееся многоточием ( ... ) $COMMAND_OUTPUT .

Как я могу захватить весь вывод консоли PowerShell в моей $COMMAND_OUTPUT переменной без усечения.

Ответ №1:

Invoke-Expression считается вредным и почти всегда неправильным инструментом для решения любой проблемы, с которой вы сталкиваетесь.

Для записи вывода команды (включая ошибки) в переменной используйте что-то вроде этого:

 $COMMAND_OUTPUT = amp; terraform apply -auto-approve 2>amp;1