不知发在这里是否合适,好歹PowerShell跟C#差不多。
碰到一个很奇怪的问题,在PowerShell里怎么也rename不了一个带有方括号的文件名,因为方括号是正则表达式的字符,而PowerShell用反撇号作为转义符,这样就有一些很奇怪的问题。
比如文件[10]:
PS F:\temp> dir '`[10`]'
Get-ChildItem : 找不到路径“F:\temp\`[10`]”,因为该路径不存在。
所在位置 行:1 字符: 4
+ dir  <<<< '`[10`]'如果用两个反撇号就可以列出来:
PS F:\temp> dir '``[10``]'
    目录: Microsoft.PowerShell.Core\FileSystem::F:\temp
Mode                LastWriteTime     Length Name
----                -------------     ------ ----
-a---        2008-12-25     11:03         22 [10]但是rename就不行:
PS F:\temp> Rename-Item 'F:\temp\`[10`]' 'F:\temp\10'
Rename-Item : 指定路径 F:\temp\`[10`] 下的对象不存在。
所在位置 行:1 字符: 12
+ Rename-Item  <<<< 'F:\temp\`[10`]' 'F:\temp\10'无论用多少转义符都不行,哪位能帮我看看?