powershell 中的更多条件而不合逻辑 return
More condition in powershell and not logical return
我需要根据我的情况获取驱动器盘符,但是 powershell return "true" 或 "false" 为此
(Get-Volume).driveletter `
-and (get-volume).size -gt "700000000000" `
-and (get-physicaldisk).MediaType -eq "HDD"
当得到(Get-Volume).driveletter
是return盘符,当更多条件return合乎逻辑。为什么?
谢谢
PowerShell 的逻辑运算符 return 布尔值 $true
和 $false
。当运算符的参数被转换时,它们的原始值不会被保留。
(某些语言如 JavaScript 将 return 来自逻辑运算符的预转换值,但许多语言不会。)
为此,你最好使用管道:
$res = Get-Volume `
| ? { $_.driveletter -and $_.size -gt "700000000000" `
-and (get-physicaldisk -objectid $_.ObjectId).MediaType -eq "HDD" }
这也避免了如果任何磁盘是 HDD 则 (get-physicaldisk).MediaType -eq "HDD"
为真的问题。而我怀疑您想要的驱动器是 HDD,具有驱动器号并且具有足够的大小。
我需要根据我的情况获取驱动器盘符,但是 powershell return "true" 或 "false" 为此
(Get-Volume).driveletter `
-and (get-volume).size -gt "700000000000" `
-and (get-physicaldisk).MediaType -eq "HDD"
当得到(Get-Volume).driveletter
是return盘符,当更多条件return合乎逻辑。为什么?
谢谢
PowerShell 的逻辑运算符 return 布尔值 $true
和 $false
。当运算符的参数被转换时,它们的原始值不会被保留。
(某些语言如 JavaScript 将 return 来自逻辑运算符的预转换值,但许多语言不会。)
为此,你最好使用管道:
$res = Get-Volume `
| ? { $_.driveletter -and $_.size -gt "700000000000" `
-and (get-physicaldisk -objectid $_.ObjectId).MediaType -eq "HDD" }
这也避免了如果任何磁盘是 HDD 则 (get-physicaldisk).MediaType -eq "HDD"
为真的问题。而我怀疑您想要的驱动器是 HDD,具有驱动器号并且具有足够的大小。