如何水平而不是垂直显示 PowerShell 结果?
How to display PowerShell results horizontally instead of vertically?
例如,您指定了一个变量,如下所示。
$data1 = get-psdrive | where-object {$_.name -like 'c'} | select -expandproperty used
$data2 = get-psdrive | where-object {$_.name -like 'c'} | select -expandproperty free
echo $data1,data2
输出是垂直的。
$data1
$data2
我用write-host -nonewline
水平显示输出,但是命令没有导出到txt
write-host $data1 -nonewline; write-host $data2 -nonewline >> c:\test.txt
如何横向显示并导出为txt?
在变量中使用双引号字符串:Write-Host “$data1,$data2”
您不能为此使用 Write-Host
。即使您更改为 Write-Host -NoNewLine
它仍然无法工作,因为 Write-Host
旨在 直接写入屏幕 而 不能redirected 除非您使用 PowerShell 5+ 并重定向 6 号流(信息流)
Write-Host -NoNewLine $data1,$data2 6>output.txt
在这种情况下,它当然不会打印成字符串。简而言之,PowerShell 5+ 中的 Write-Host
不会写入标准输出,而是 信息流
真正的解决方案 写入屏幕并能够重定向到文件或管道到另一个命令是使用 Write-Output
(echo
的别名), 并简单地使用单个字符串写入一行
Write-Output "$data1,$data2"
echo "$data1,$data2"
echo ($data1 + "," + $data2)
有关详细信息,请参阅 Write-Host Considered Harmful
如何转换为 json(或 csv)?请注意,“>>”可以混合编码,但 add-content 不能。
get-psdrive c | select used, free | ConvertTo-Json -Compress |
add-content test.txt
get-content test.txt
{"Used":217365741568,"Free":21004943360}
或者只是加入他们。太糟糕了 select -expand 不适用于多个属性。
psdrive c | % { ($_.used,$_.free) -join ',' }
217382371328,20988313600
例如,您指定了一个变量,如下所示。
$data1 = get-psdrive | where-object {$_.name -like 'c'} | select -expandproperty used
$data2 = get-psdrive | where-object {$_.name -like 'c'} | select -expandproperty free
echo $data1,data2
输出是垂直的。
$data1
$data2
我用write-host -nonewline
水平显示输出,但是命令没有导出到txt
write-host $data1 -nonewline; write-host $data2 -nonewline >> c:\test.txt
如何横向显示并导出为txt?
在变量中使用双引号字符串:Write-Host “$data1,$data2”
您不能为此使用 Write-Host
。即使您更改为 Write-Host -NoNewLine
它仍然无法工作,因为 Write-Host
旨在 直接写入屏幕 而 不能redirected 除非您使用 PowerShell 5+ 并重定向 6 号流(信息流)
Write-Host -NoNewLine $data1,$data2 6>output.txt
在这种情况下,它当然不会打印成字符串。简而言之,PowerShell 5+ 中的 Write-Host
不会写入标准输出,而是 信息流
真正的解决方案 写入屏幕并能够重定向到文件或管道到另一个命令是使用 Write-Output
(echo
的别名), 并简单地使用单个字符串写入一行
Write-Output "$data1,$data2"
echo "$data1,$data2"
echo ($data1 + "," + $data2)
有关详细信息,请参阅 Write-Host Considered Harmful
如何转换为 json(或 csv)?请注意,“>>”可以混合编码,但 add-content 不能。
get-psdrive c | select used, free | ConvertTo-Json -Compress |
add-content test.txt
get-content test.txt
{"Used":217365741568,"Free":21004943360}
或者只是加入他们。太糟糕了 select -expand 不适用于多个属性。
psdrive c | % { ($_.used,$_.free) -join ',' }
217382371328,20988313600