Я пытаюсь получить некоторую информацию о моих жестких дисках, используя PowerShell (кстати, очень плохо знакомый с PS).
При расчете занятости накопителей некоторые накопители не смонтированы и возвращают размер 0. Поэтому мне нужно ввести условие, при котором накопитель с размером 0 не должен вычислять занятость.
$fmt = "{0,-5} | {1,-18} | {2,12:N2} | {3,21:N2} | {4,17:p} | {5,-15}"
$docc = { if ( $_.size -ne "0" ) { (($_.size-$_.freespace)/$_.size)} else {"0"} }
Get-WmiObject Win32_logicaldisk | foreach -begin {
$fmt -f "Unit","File System","Capacity(GO)", `
"Available Space(GO)","Occupancy","Observation" } {
$fmt -f $_.deviceID, $_.FileSystem, ($_.size/1GB), `
($_.freespace/1GB), $docc, ""}
Предыдущий код будет возвращать if только как строку, не интерпретируя ее (даже без использования переменной).