PowerShell中如何rename带有方括号的文件名?

x86 微博 开发组长/高级工程师/技术专家  2008-12-26 05:23:15
不知发在这里是否合适,好歹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'


无论用多少转义符都不行,哪位能帮我看看?

...全文
161 点赞 收藏 5
写回复
5 条回复
x86 2008年12月29日
晕~~
本以为rename-item和move-item都可以改名,谁知表现会不一样,这个问题网上搜了一下,在PS1.0之前他们发现了这个问题,
然后修改了*-item的命令,除了rename-item,因为他们认为可以用move-item命令来实现。
这个理由似乎也太牵强了。

2楼说的move-item可以,多谢!

回复 点赞
GTX280 2008年12月26日
帮顶
回复 点赞
kingcsx666 2008年12月26日
这个就不懂啦
回复 点赞
gomoku 2008年12月26日
用move-item可以。

move-item 'F:\temp\`[10`]' 'F:\temp\10'
回复 点赞
xxyping 2008年12月26日
灌个氺 UP!!!!!
回复 点赞
发动态
发帖子
C#
创建于2007-09-28

8.5w+

社区成员

64.0w+

社区内容

.NET技术 C#
社区公告
暂无公告