powershell从文件名中删除最后3个字符

时间:2012-05-01 11:00:05

标签: powershell file-rename

我需要递归地重命名一堆扩展名为'.cop'的文件(用于复制)并删除'.cop'字符串。

我根据get-help rename-item主题中的内容发出了以下命令:

gci -r -i *.cop | Rename-Item -newname {$_.name -replace '\.cop',''}

但是我收到了IO异常错误:

Rename-Item : Cannot create a file when that file already exists.

PowerShell不想重命名该文件,因为它已经存在? 那没有意义......有谁知道我在这里做错了什么?

谢谢

2 个答案:

答案 0 :(得分:1)

您需要使用Foreach-Object Cmdlet:

gci -r -i *.cop | % {ren $_ -newname $_.Name.Replace(".cop", "") -whatif}

答案 1 :(得分:0)

您的代码适合我。确保您没有包含要重命名的文件名称的目录。