最近运维公司系统时,在PowerShell上学习到了比较运算符 -Match -Like -Contains的用法。
这三个用法非常的相似,常常在coding时混淆。
因此本篇将和大家介绍这三个用法的区别哦!
1.-Match的基本用法
Match用于检测字符串A中是否包含由特定模式组成的字符串B。
Match的优点是,你所指定的特定模式B不一定要完全与字符串A完全吻合,这也是Match最大的特点。
另外,Match也和其他运算符一样拥有否定形式 -NotMatch。
以下将简单介绍-Mach的基本用法及其示例。
当字符串$MyName中包含指定模式“ka”时,将返还True。
$MyName =”kikajia1994″ # Result PS> True |
当所指定的模式不包含于$MyName时,将返还False。
$MyName =”kikajia1994″ $Person -Match “cica” # Result PS> False $MyName =”kikajia1994″ $Person -Match “84″ # Result PS> False |
可以使用通配符“?”来指定任意字符。
$MyName =”kikajia1994″ $Person -Match “19?4″ # Result PS> True |
2.-Like的基本用法
如果你只是想检测字符串中是否包含特定模式的话,那就不适合用-like。
-like的特点是必须结合通配符“ * ”来检测是否部分匹配。
$MyName =”kikajia1994″ $Person -Like “kika” # Result PS> False $MyName =”kikajia1994″ $Person -Like “kika*” # Result PS> True |
通配符也可以自由地放置于不同的位置。
$MyName =”kikajia1994″ $Person -Like “*jia*” # Result PS> True $MyName =”kikajia1994″ $Person -Like “*1994″ # Result PS> True |
同样的-like也有否定形式-Notlike。
3.-Contanis的基本用法
-Contains的功能与-eq相似,但它是用于检测某元素是否包含于某集合,数列或是Hashtable中。
并且他的返回值必须为True或False。
$MyName =“Apple”,“Orange”,“Grape” $Person -Contains “*Apple*” # Result PS> True |
-Contains必须用于检测某集合是否包含整个“元素”,而不是部分”字符“。
因此也不能与通配符同时使用。
$MyName =“Apple”,“Orange”,“Grape” $Person -Contains “range” # Result PS> False $MyName =“Apple”,“Orange”,“Grape” $Person -Contains “*range” # Result PS> False |
4.关于PowerShell的运算符
本篇简单的和大家介绍了-Match -Like -Contains 的用法与区别~
当然除了条件运算符以外,PowerShell还有其他不同类型的运算符。
详情可以使用PowerShell自带的Get-Help来获取具体的用法以及示例哦!
# For even more information about PowerShell Operators try: Get-Help about_Operators |
以下简单的列出了PowerShell的基本运算符:
- Arithmetic (+ * – /)
- Assignment (= also -= +=)
- Comparison ( -Match -Like. Also: -eq -gt)
- Logical ( -And -Not)
- Redirectional ( >
- Split and Join ( -split)
- Type (-Is -Isnot)
- Unary ($i++)
有兴趣的朋友们可以去查看看咯!
那么,本篇文章就到这里啦,希望能帮助到大家!
Kikajia最近终于开设了FB粉丝专页!!
点赞即可追踪最新帖文哦!您的支持是我最大的动力(o^^o)