Powershell Standard Verbose для переменной
Я написал такой скрипт, я использую $output1
для того, чтобы перенаправить вывод стандартного многословия.
$output1 = $(
cmdlet1 [Some Parameters] -Verbose | % {
cmdlet2 [Other Some Parameters] -Verbose
} ) 4>&1
Когда я не сохраняю стандартное подробное описание в переменной, оно хорошо печатается в PowerShell, с символом новой строки. Но когда я фиксирую стандартный многословный в $output1
и сохранить его в файл, он печатает все в одну очень длинную строку.
Как я могу хранить в своей переменной стандартный многословный файл?
1 ответ
Насколько я знаю, для этого нет простого синтаксиса. Зачем? Потому что в противном случае вывод конвейера будет мешать многословным сообщениям, предупреждениям и сообщениям об ошибках Есть еще обходной путь, немного более сложный. Перенаправьте подробный вывод во временный файл, получите содержимое, удалите файл. Взглянуть:
$resultFile = [System.IO.Path]::GetTempFileName();
1| % {
$x = [System.IO.Path]::GetTempFileName();
rm $x -Verbose
} 4>$resultFile
$result = cat $resultFile
rm $resultFile
В вашем примере:
$resultFile = [System.IO.Path]::GetTempFileName();
$(
cmdlet1 [Some Parameters] -Verbose | % {
cmdlet2 [Other Some Parameters] -Verbose
}) 4>&1
$output1 = cat $resultFile
rm $resultFile