变量赋值中的Powershell

时间:2016-11-16 09:41:57

标签: powershell variables

我是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)

   }

1 个答案:

答案 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)))}