PowerShell -Path cmdlet匹配含元字符文件名的通配符问题
解决PowerShell中含元字符文件名的通配符匹配问题
你创建的文件包含方括号这类PowerShell通配符的特殊字符,要匹配所有以test[xml].开头的文件,正确的-Path参数需要注意两点:
- 方括号
[]是PowerShell通配符的字符集/范围标记,必须用反引号`转义才能表示字面意义的方括号 - 点
.在PowerShell通配符中是匹配任意单个字符的元字符,要匹配文件名里字面意义的.,同样需要用反引号转义
所以正确的参数值是:
test`[xml`].`*
执行命令示例:
Resolve-Path -Path test`[xml`].`*
补充说明
如果不需要使用通配符、仅需精确匹配字面路径,可以改用-LiteralPath参数,此时无需转义任何元字符:
# 精确匹配单个文件 Resolve-Path -LiteralPath test[xml].0 # 配合Get-ChildItem批量匹配同前缀文件 Get-ChildItem -LiteralPath test[xml].*
内容的提问来源于stack exchange,提问作者Fravadona
相关产品推荐
相关产品推荐

