2016-11-16 127 views
0

我是在PowerShell的新手,我想出了在变量赋值的问题: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

可以更有效地进行一点点,我认为现在

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