PowerShell字符串集合 - 搜索

时间:2018-02-01 23:22:55

标签: powershell

我在PowerShell中发现了一些奇怪的行为,并且无法弄清楚它为什么会这样。在以下三行代码中,为什么只有-match返回我想要的内容,而另外两个命令什么都不返回?

Get-Service | ?{$_.Name -like "sql"}
Get-Service | ?{$_.Name.Contains("sql")}
Get-Service | ?{$_.Name -match "sql"}      # This one works?

1 个答案:

答案 0 :(得分:4)

-like使用通配符匹配。如果您不使用任何通配符,它​​将完全匹配(不区分大小写)。

.Contains对象的[String]方法区分大小写。

-match运算符使用正则表达式(不区分大小写)。由于模式中存在输入字符串(服务名称),因此返回$true