简化 Powershell Where-Object

Simplify Powershell Where-Object

我有使用 Where-Object

的工作 Import-Csv 语句
Import-Csv D:\Script\my.csv | Where-Object {$_.SourceIP -Like '10.251.22.11*' -Or $_.SourceIP -Like '10.251.22.*' -Or $_.DestinationIP -Like '10.251.22.11*' -Or $_.DestinationIP -Like '10.251.22.*'}

如果我尝试简化语句,它不起作用

Import-Csv D:\Script\my.csv | Where-Object {($_.SourceIP -Like ('10.251.22.11*' -Or '10.251.22.*')) -Or ($_.DestinationIP -like ('10.251.22.11*' -Or '10.251.22.*'))}

Google 没有帮助:-(

在这种情况下使用 -match 而不是 -like。

Import-Csv D:\Script\my.csv | Where-Object {$_.SourceIP -match '^10\.251\.22\.*' -or $_.DestinationIP -match '^10\.251\.22\.*'}

此外,10.251.22.* 将匹配 10.251.22.11*,因此您可以将它们组合起来。