PowerShell中有-contain、-like、-in等操作符,使用这些操作符,可以很方便的在数组中查找元素内容。其中in操作符貌似要在PowerShell 3.0中才有。
先看一个例子,将Windows目录的所有文件的文件名放入到数组$name中,然后在数组$name中查找exploer.exe元素。且看-contains的魅力!
PS> $names = Get-ChildItem -Path $env:windir | Select-Object -ExpandProperty Name PS> $names -contains 'explorer.exe' True
-contains操作符确实很强大,但是很遗憾,它不能在指定字符串中包含通配符。如果想使用通配符进行查找数组元素,则可以使用-like操作符。
PS> $names -contains 'explorer*' False
PS> $names -like 'explorer*' explorer.exe
PS> 'Peter', 'Mary', 'Martin' -contains 'Mary' True PS> 'Peter', 'Mary', 'Martin' -contains 'Ma*' False PS> 'Mary' -in 'Peter', 'Mary', 'Martin' True PS> 'Peter', 'Mary', 'Martin' -like 'Ma*' Mary Martin PS> @('Peter', 'Mary', 'Martin' -like 'Ma*').Count -gt 0