来自远程服务器的磁盘空间信息,一个字符串中的多个驱动器没有CR LF

时间:2016-01-07 18:24:26

标签: powershell space disk

我想在单个字符串中获取远程服务器的磁盘驱动器和当前磁盘空间信息(对于驱动器类型3,没有CD或可移动设备),以包含在服务器清单电子表格(状态快照)中。

以下代码:

Get-WmiObject Win32_Volume -Computer <servername> -Filter "Drivetype='3'"|
  select driveletter,
         @{Name="Capacity (GB)";Expression={[math]::round(($_.Capacity/1GB),2)}},
         @{Name="FreeSpace (GB)";Expression={[math]::round(($_.FreeSpace/1GB),2)}} 

给我这样的输出:

driveletter   Capacity (GB)            FreeSpace (GB)
-----------   -------------            --------------
C:            50                       38.89
E:            309.99                   26.28
P:            10                        5.95

我希望它看起来像这样,所有这些都在一行上,所以我可以轻松地将它填入电子表格中:

C:\38.89/50 E:\26.28\309.99 P:\5.95\10

但我不确定如何将它放在一条线上。

1 个答案:

答案 0 :(得分:1)

$result = ''
Get-WmiObject win32_volume -computer $env:COMPUTERNAME -filter "Drivetype='3'" | % {
    $result += '{0}\{1}\{2} ' -f $_.driveletter, [math]::round(($_.FreeSpace/1GB),2), [math]::round(($_.Capacity/1GB),2)
}
$result.trim()

推荐替代方案:

(Get-WmiObject win32_volume -computer $env:COMPUTERNAME -filter "Drivetype='3'" | % {'{0}\{1}\{2}' -f $_.driveletter, [math]::round(($_.FreeSpace/1GB),2), [math]::round(($_.Capacity/1GB),2)})-join' '