(21)Powershell中的通配符
2017-01-16 22:03
507 查看
使用通配符进行文件的模糊查找
Powershell 中的通配符可以实现模糊查找, 也就是说可以对一组项(而不是单个项)进行查找。例如,如果想查找 D:\MyPowerShell 目录中所有扩展名为 .ps1 的文件,可以执行以下命令:
除了星号通配符外,PowerShell 中还支持几种其他通配符。
Powershell 中的大多数 cmdlet 的某些参数都接受通配符。每个 cmdlet 的帮助中都说明了哪些参数允许使用通配符,哪些可以使用通配符。对于接受通配符的参数,它们的用法是不区分大小写的。例如,?n 将返回 An、an、In、in、On、和 on。例如:
通配符在单个参数可以混合使用。例如,要查找 D:\MyPowerShell 目录下所以以字母m到q开头的.ps1 文件,则执行以下命令:
2. 使用通配符对关键字的模糊查找
使用通配符可以对指定的关键字进行模糊查找。例如想查找当前目录(D:\MyPowerShell)中,包含指定关键字 "ERROR" 的所有文本文件(.txt),可以执行以下语句:
字符串的模糊搜索和查找在分析log 文件时会非常有用。 而 Select-String 可以使不用打开文件就文件中的关键字进行搜索,尤其是当不确定具体路径是,使用该命令会非常方便。
总结
Powershell 中的通配符可以实现文件以及指定关键字的模糊查找, 通配符只是正则表达式的一部分,所以也可以使用正则表达式进行模式匹配以及模糊查找。
Powershell 中的通配符可以实现模糊查找, 也就是说可以对一组项(而不是单个项)进行查找。例如,如果想查找 D:\MyPowerShell 目录中所有扩展名为 .ps1 的文件,可以执行以下命令:
PS C:\> Get-ChildItem D:\MyPowerShell\*.ps1 目录: D:\MyPowerShell Mode LastWriteTime Length Name ---- ------------- ------ ---- -a--- 2016-5-26 21:52 1100 3testparamStart.ps1 -a--- 2016-5-26 22:22 2864 4testparamStart.ps1 -a--- 2016-5-27 20:55 4536 CommentbasedHelp.ps1 -a--- 2016-5-23 22:20 966 Diskinfo.ps1 -a--- 2016-5-27 21:26 678 errorAction.ps1 ...在以上语句中,星号 (*) 用作通配符,用于指定 .ps1 文件扩展名之前可以存在任意字符。因为命令中包含文件扩展名,所以该命令返回的所有文件都必须带有该扩展名,但不限文件名。
除了星号通配符外,PowerShell 中还支持几种其他通配符。
通配符 | 说明 | 示例 | 匹配 | 不匹配 |
* | 与任意字符匹配 | a* | A、ag、Age | baba、cat |
? | 与指定位置中的一个字符严格匹配 | ?m | am、im | ccm |
[] | 与一组字符匹配 | [a-d]ge | age、bge | fge |
[] | 与指定的字符匹配 | [bc]ook | book、cook | aook |
PS C:\> Get-Help Get-Process -Parameter Name -Name <string[]> 通过进程名称指定一个或多个进程。可以键入多个进程名称(以逗号分隔)或使用通配符。参数名(“Name”)为可选项。 是否必需? False 位置? 1 默认值 是否接受管道输入? true (ByPropertyName) 是否接受通配符? True从上面的语句参数说明中,可知 Get-Process 的-Name 参数可以接受通配符,所以才可以对进程名进行模糊查找。例如:
PS C:\> Get-Process *shell Handles NPM(K) PM(K) WS(K) VM(M) CPU(s) Id ProcessName ------- ------ ----- ----- ----- ------ -- ----------- 436 6 46828 37320 155 3.20 4116 powershell
通配符在单个参数可以混合使用。例如,要查找 D:\MyPowerShell 目录下所以以字母m到q开头的.ps1 文件,则执行以下命令:
PS C:\> Get-ChildItem D:\MyPowerShell\[m-q]*.ps1 目录: D:\MyPowerShell Mode LastWriteTime Length Name ---- ------------- ------ ---- -a--- 2016-5-26 22:58 3172 Mandatory.ps1 -a--- 2016-5-31 22:13 780 manifest.ps1 -a--- 2016-5-30 22:26 4100 MyTools.ps1 -a--- 2016-5-26 23:18 3408 ParamCount.ps1 -a--- 2016-5-26 23:10 3368 ParamHelp.ps1 -a--- 2016-5-26 23:34 3672 ParamPattern.ps1 -a--- 2016-5-26 23:13 3468 ParamSet.ps1 -a--- 2016-5-27 20:44 404 PlacingHelp.ps1以上命令中使用范围通配符 ([m-q]) 来指定文件名应以字母 m 到 q 开头,并以 .ps1 为扩展名的所有文件。
2. 使用通配符对关键字的模糊查找
使用通配符可以对指定的关键字进行模糊查找。例如想查找当前目录(D:\MyPowerShell)中,包含指定关键字 "ERROR" 的所有文本文件(.txt),可以执行以下语句:
PS D:\MyPowerShell> Select-String -Pattern ("ERROR") *.txt Help.txt:335: -ErrorAction, -ErrorVariable, -WarningAction, -WarningVariable, Help.txt:513: -ErrorAction, -ErrorVariable, -WarningAction, -WarningVariable,查询的结果的会显示哪些文件包含指定的关键字,并出现在哪一行,以上例子中分别出现在335和513行。
字符串的模糊搜索和查找在分析log 文件时会非常有用。 而 Select-String 可以使不用打开文件就文件中的关键字进行搜索,尤其是当不确定具体路径是,使用该命令会非常方便。
总结
Powershell 中的通配符可以实现文件以及指定关键字的模糊查找, 通配符只是正则表达式的一部分,所以也可以使用正则表达式进行模式匹配以及模糊查找。
相关文章推荐
- 21_ElasticSearch 前缀搜索、通配符搜索、正则搜索
- Java基础(21):泛型—泛型的定义、用法与类型通配符的使用方式
- PowerShell中使用通配符匹配文件路径的例子
- PowerShell中使用Like运算符配合通配符查找字符串例子
- Using exchange server to send email in Powershell
- PowerShell介绍 第二回 "PowerShell执行策略"
- [effectiv c++]条款21:返回reference 与 返回object
- PowerShell检测AD域用户密码到期邮件提醒
- PowerShell介绍 第十三回 定义参数
- C#学习回顾笔记四:C#的通配符是什么
- 《PowerShell 3.0 Advanced Admin handbook》已于今日上市
- muduo库阅读(21)——时区类
- Spring中通配符的匹配很全面, 但无法找到元素
- Powershell - SID to USER and USER to SID
- Powershell管理系列(二十四)PowerShell操作之批量启用Exchange用户头像
- 泛型通配符再次深入理解
- 此计算机正在处理另一个操作,不能关闭。请等待计算机完成操作,然后再试一次。(21)
- 线性表16:双向链表 – 数据结构和算法21
- Effective Java(数组和泛型的实现方式、用无限制的通配符提高API的灵活性)
- PowerShell 2.0 实践(五)管理Windows注册表