如果我同时运行以下两个命令,则只显示第一个命令。如果我单独运行它们,那么我得到两个结果。我错过了什么?
Get-WmiObject win32_volume -Computername "Your Server Name" | select driveletter, BlockSize, FreeSpace
Get-ChildItem 'HKLM:\SOFTWARE\Microsoft\NET Framework Setup\NDP' -recurse | Get-ItemProperty -name Version,Release -EA 0 | Where { $_.PSChildName -match '^(?!S)\p{L}' -and $_.Version -gt 3.5 -and $_.Version -lt 3.6} | Select PSChildName, Version, Release;
答案 0 :(得分:1)
我之前见过这个。您会混淆PowerShell的输出表格显示。据我所知,这是Select-Object
的错误。这是一些示例代码:
"" | Select-Object -Property @{n="1";e={1}};
"" | Select-Object -Property @{n="2";e={2}};
"" | Select-Object -Property @{n="1";e={11}},@{n="2";e={22}};
哪些输出(空白浓缩):
1
-
1
11
这段代码:
"" | Select-Object -Property @{n="1";e={11}},@{n="2";e={22}};
"" | Select-Object -Property @{n="1";e={1}};
"" | Select-Object -Property @{n="2";e={2}};
输出(空格缩小):
1 2
- -
11 22
1
2
注意它只在一个表中?这就像第一个Select-Object
确定表格的标题,其余的必须遵循。我不知道为什么会这样做,或者它是否已在PowerShell v5.0中修复。
简单的解决方法是管道到Format-Table
:
"" | Select-Object -Property @{n="1";e={1}} | Format-Table -AutoSize;
"" | Select-Object -Property @{n="2";e={2}} | Format-Table -AutoSize;
"" | Select-Object -Property @{n="1";e={11}},@{n="2";e={22}} | Format-Table -AutoSize;
哪个正确输出:
1
-
1
2
-
2
1 2
- -
11 22