PowerShell get-childitem无法处理以[字符开头]甚至包含转义字符的文件名

时间:2012-02-29 23:33:06

标签: powershell escaping character

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

为什么在'['不起作用时逃避字符?

2 个答案:

答案 0 :(得分:2)

请参阅get-help about_wildcards

[]是通配符“globbing”运算符。要对包含这些字符的文件使用get-childitem,请使用-literalpath开关禁用文件规范的通配符:

get-childitem -literalpath "c:\temp[default].xml"

或者,正常的通配符仍然可以在directoryinfo对象的.getfiles()方法中使用:

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

答案 1 :(得分:1)

您已经在旧Technet Windows PowerShell Tip of the Week中获得了Microsoft官方回答。

您可以使用:

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