【发布时间】:2011-11-23 02:16:11
【问题描述】:
我正在尝试使用 PowerShell 检索有关我的硬盘驱动器的一些信息(对 PS btw 来说非常新)。
在计算驱动器的占用率时,一些驱动器未安装并且将返回大小为 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 作为字符串返回而不解释它(即使不使用变量)。
【问题讨论】:
标签: powershell if-statement foreach