PowerShell get childitem无法处理以[character]开头的文件名,即使是转义字符也是如此

PowerShell get childitem无法处理以[character]开头的文件名,即使是转义字符也是如此,powershell,escaping,character,Powershell,Escaping,Character,我在c:\temp目录中有一个名为[default].xml的文件。 当我在powershell控制台中发出命令:get-childitem c:\temp`[default].xml时,它不会返回任何内容。但是,如果我发出命令:get-childitem c:\temp*default].xml,它将按预期工作 为什么“[”上的转义字符不起作用?请参阅获取有关通配符的帮助 []是通配符全局运算符。若要在具有这些字符的文件上使用get childitem,请使用-literalpath开关禁用文

我在c:\temp目录中有一个名为[default].xml的文件。 当我在powershell控制台中发出命令:get-childitem c:\temp`[default].xml时,它不会返回任何内容。但是,如果我发出命令:get-childitem c:\temp*default].xml,它将按预期工作


为什么“[”上的转义字符不起作用?

请参阅获取有关通配符的帮助

[]是通配符全局运算符。若要在具有这些字符的文件上使用get childitem,请使用-literalpath开关禁用文件规范的通配符:

get-childitem -literalpath "c:\temp[default].xml"
或者,普通的通配符仍在directoryinfo对象的.getfiles方法中工作:

(get-item c:\).getfiles("temp[default].*")

您已经得到了一个旧版本的Microsoft官方答案

您可以使用:

Get-ChildItem 'c:\temp\``[default``].xml'