2016-01-07 6 views
0

Я хочу получить информацию о диске и текущем диске для удаленного сервера (для drivetype 3, без CD или съемных файлов) в одной строке для включения в сервер таблица инвентаризации (моментальный снимок состояния).Информация о дисках с удаленного сервера, несколько дисков в одной строке нет CR LF

Следующий код:

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

Но я не уверен, как получить его на одной линии.

+3

У вас есть 5 обратные слэши и один слеш в нужной продукции. В самом деле? –

+0

Picky ;-) Просто бросил их в качестве читаемых разделителей. «\», поскольку это относится к подсказкам дисков и/представляет долю дискового пространства, такую ​​как 1/4 и т. д. Что вы предлагаете? – user1854377

+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' ' 
+1

Я бы не добавлял строку. Просто эхо отформатированные строки внутри 'ForEach-Object', присвойте вывод переменной (' $ result = Get-WmiObject ... ') и присоедините полученный список (' $ result -join '' '). –

+0

спасибо за помощь. зачем вы присоединяетесь к массиву и добавляете строку? –

+1

Лучшая производительность. Вероятно, в этом контексте это не имеет значения, но это хорошая практика. –