Powershell小技巧之复合筛选

当你分析文本日志或筛选不通类型的信息时,你通常要使用 Where-Object。这里有一个通用脚本来说明复合筛选:

# logical AND filter for ALL keywords 
Get-Content -Path C:windowsWindowsUpdate.log | 
 Where-Object { $_ -like '*successfully installed*' } | 
 Where-Object { $_ -like '*framework*' } | 
 Out-GridView
 
# above example can also be written in one line 
# by using the -and operator 
# the resulting code is NOT faster, though, just harder to read 
Get-Content -Path C:windowsWindowsUpdate.log | 
 Where-Object { ($_ -like '*successfully installed*') -and ($_ -like '*framework*') } | 
 Out-GridView
 
# logical -or (either condition is met) can only be applied in one line 
Get-Content -Path C:windowsWindowsUpdate.log | 
 Where-Object { ($_ -like '*successfully installed*') -or ($_ -like '*framework*') } | 
 Out-GridView