我需要根据情况获取驱动器号,但是powershell为此返回“ true”或“ false”
(Get-Volume).driveletter `
-and (get-volume).size -gt "700000000000" `
-and (get-physicaldisk).MediaType -eq "HDD"
当get (Get-Volume).driveletter
是返回盘符时,更多条件返回逻辑时。为什么?
Thnx
答案 0 :(得分:1)
PowerShell的逻辑运算符返回布尔值$true
和$false
。转换运算符的参数时,不会保留其原始值。
(某些语言(如JavaScript会从逻辑运算符返回预转换的值,但许多语言则不会)。
为此,您最好使用管道:
$res = Get-Volume `
| ? { $_.driveletter -and $_.size -gt "700000000000" `
-and (get-physicaldisk -objectid $_.ObjectId).MediaType -eq "HDD" }
这还避免了如果任何磁盘是HDD,(get-physicaldisk).MediaType -eq "HDD"
将为true的问题。而我怀疑您想要的驱动器是HDD,具有驱动器号并且具有足够的大小。