我目前在當前項目中遇到了一些問題。我有兩個陣列 - 第一陣列包含用於磁盤大小的參考值:將給定尺寸與所需尺寸進行比較並顯示不匹配
$RequiredDisks0 = New-Object System.Object
$RequiredDisks0 | Add-Member -Type NoteProperty -Name "DeviceID" -Value "C:"
$RequiredDisks0 | Add-Member -Type NoteProperty -Name "SizeGB" -Value "80"
第二陣列包含底層系統的磁盤信息:
$SystemDisks = Get-WmiObject Win32_LogicalDisk |
Where {$_.DriveType -eq 3} |
select DeviceID,
@{Name="Size(GB)";Expression={[decimal]("{0:N0}" -f ($_.Size/1gb))}}
我想這樣做,是檢查給定的陣列對參考數組,以查看是否有給定的磁盤比所需的小。我發現我可以用
Compare-Object -ReferenceObject $RequiredDisks -DifferenceObject $SystemDisks -Property SizeGB,DeviceID
比較陣列和如下確實我收到的區別在哪裏我有麻煩
SizeGB DeviceID SideIndicator
------ -------- -------------
99 C: =>
15 H: =>
100 I: =>
80 C: <=
25 H: <=
200 I: <=
正在與輸出。我想達到的結果是一個輸出,說明「磁盤n比所需的小」。我知道所有帶側指示器「< =」的值都是所需的值,所有帶「=>」側指示器的值都是給定的值。我已經嘗試了foreach
聲明,但我無法根據需要處理數據 - 我需要根據所需值檢查給定值,如果它較小,請告訴我。我如何再次根據需要比較這些值?基本上是一個「foreIndicator爲< =的比較對象,其中SideIndicator =>和DeviceID等於DeviceID的foreach對象。我如何將它轉換爲正確的代碼?
請不要編輯答案變成一個問題。如果您自己找到解決方案:將其作爲您自己的答案發布。如果你想改進你的代碼:在[代碼評論](https://codereview.stackexchange.com/)上發佈一個問題。 –
感謝眨眼 - 威科。 –