如何获得除开关指示的项目以外的所有项目?
我用:
Get-Disk -UniqueId 4875E7EB064AA60
仅获取特定磁盘驱动器的信息。
我想使用相同的命令,但获取除此之外的所有驱动器。
像这样(伪代码):
Get-Disk -not( -UniqueId 4875E7EB064AA60 )
答案 0 :(得分:3)
PowerShell作为一种语言不允许“反转”参数值。您需要在事后用Where-Object
过滤返回的结果。
Get-Disk | Where-Object { $_.UniqueId -ne '4875E7EB064AA60' }
有几个cmdlet确实允许表达“除此之外的所有内容”语义,但它取决于单个cmdlet是否以及如何实现它。例如:
Get-ChildItem
和Select-Object
cmdlet的参数-Exclude
可以排除特定结果。Select-String
cmdlet有一个开关-NotMatch
,用于反转参数-Pattern
选择的内容。not
条件的过滤器参数的所有cmdlet(如Get-WmiObject -Filter
,Get-ADUser -Filter
或Get-ADUser -LDAPFilter
)显然也允许表达“not this”语义。