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
上面的例子說明了-contains不能使用通配符,下面我們來使用-like看看。
復制代碼 代碼如下:
PS> $names -like 'explorer*'
explorer.exe
文章一開頭小編還說了,可以使用-in操作符來來作類似的處理,而且in操作符還可以將數組和要匹配的字符串反過來。什么意思呢?且看下面幾個例子。
復制代碼 代碼如下:
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
以上幾個例子的含義,大家自行理解。關于使用PowerShell在數組中查找元素,小編就介紹這么多,希望對大家有所幫助。