Powershell 标准详细到变量
Powershell Standard Verbose to a variable
我写了一个这样的脚本,我使用$output1
为了redirect the output of the standard verbose。
$output1 = $(
cmdlet1 [Some Parameters] -Verbose | % {
cmdlet2 [Other Some Parameters] -Verbose
} ) 4>&1
当我不将标准详细信息存储在变量中时,它会以一种很好的方式在 powershell 中打印,并带有换行符。
但是当我在 $output1
中捕获标准详细信息并将其保存在文件中时,它会在一个很长的单行中打印所有内容。
我怎样才能以一种好的方式在我的变量中存储标准的详细信息?
据我所知,这没有简单的语法。为什么?因为管道输出否则会干扰冗长、警告和错误消息。仍然有解决方法,稍微复杂一点。将您的详细输出重定向到临时文件、获取内容、删除文件。看一看:
$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
我写了一个这样的脚本,我使用$output1
为了redirect the output of the standard verbose。
$output1 = $(
cmdlet1 [Some Parameters] -Verbose | % {
cmdlet2 [Other Some Parameters] -Verbose
} ) 4>&1
当我不将标准详细信息存储在变量中时,它会以一种很好的方式在 powershell 中打印,并带有换行符。
但是当我在 $output1
中捕获标准详细信息并将其保存在文件中时,它会在一个很长的单行中打印所有内容。
我怎样才能以一种好的方式在我的变量中存储标准的详细信息?
据我所知,这没有简单的语法。为什么?因为管道输出否则会干扰冗长、警告和错误消息。仍然有解决方法,稍微复杂一点。将您的详细输出重定向到临时文件、获取内容、删除文件。看一看:
$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