我是powershell的新手,我在变量赋值中提出了问题:
下面是脚本用于检索drivetype等于3的驱动器的可用空间百分比
我无法通过从文本文件中检索值来将$line
传递到第6行,但如果我c:
而不是脚本完美运行,那么我的错误是什么?
Get-WmiObject -Class Win32_logicalDisk | ? {$_.DriveType -eq '3'} | select deviceid > driveletter.txt
$content = Get-Content driveletter.txt | select-string ':' -simplematch
foreach ($line in $content)
{
"line $line"
$freespace = Get-WmiObject -Class Win32_logicalDisk | ? {$_.DeviceID -eq '**$line**'}
$drive = ($freeSpace.DeviceID).Split("=")
"Your $drive Free Space Percentage is {0:P2}" -f ($freespace.FreeSpace / $freespace.Size)
}
答案 0 :(得分:1)
我认为这可以更有效地完成。
Get-WmiObject -Class Win32_logicalDisk | Where-Object {$_.DriveType -eq '3'} | ForEach-Object {Write-Host "Your $($_.DeviceID) Free Space Percentage is $($($_.FreeSpace) / $($_.Size))"}
百分比现在显示为0.xx,这不是理想的。还在调查。
**编辑:**您的计算有点偏差,并且还对写入主机进行了一些更改以使其更具可读性:
Get-WmiObject -Class Win32_logicalDisk | Where-Object {$_.DriveType -eq '3'} | ForEach-Object {Write-Host ('Your ' + $_.DeviceID + ' Free Space Percentage is ' + ($_.FreeSpace / ($_.Size / 100)))}