2016-11-16 104 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)))}