replace/rename 一次 1300 个 .png 文件,cmd 还是 powershell?替换曾经名字的最后 4 位数字

replace/rename 1300 .png files at once, cmd or powershell? replace the last 4 digits of ever name

我是 cmd 和 windows powershell 的新手,我不想搞砸任何事情所以我问更聪明的人...

这是我的参考资料 https://www.thomas-krenn.com/en/wiki/Cmd_commands_under_Windows

我试过: 找到 *.png -exec mv {} ${foo: -4} ; 但我得到这个“发现:参数格式不正确”

谁能告诉我我是怎么搞砸的?

我正在尝试删除文件夹中每个 .png 文件的最后 4 位数字。 需要明确的是,我并不是要覆盖 .png 扩展名。只有姓名的最后 4 位数字

我将在 powershell 中使用它:

dir "filepath"-filt *.png -rec|ren -newn {($_.basename -replace "\d{4}$","")+$_.extension}
  • dirGet-ChildItem 的别名)将递归列出 .png 文件。 (-rec -> -recurse,-filt -> -filter)
  • 然后通过管道传输到 renRename-Item 的别名)
  • 然后在 -newn 中创建一个脚本块(转到 -newname
  • 使用正则表达式替换基本名称(不带扩展名的文件名)的最后 4 位数字(\d 匹配一个数字,{4} 恰好匹配 4 个实例,$ 匹配字符串末尾) 并加入扩展,$_ 转到管道项。

类似于 Wasif 的回答,但要确保名称至少有 5 位数字,这样您就不会得到任何名为 .png.

的文件
Get-ChildItem -path $folder -Filter *.png |
    Where-Object {$_.Name -match '.{5}.png'} |
        Rename-Item -NewName {$_.BaseName -replace '.{4}$',".png"}

我找到了一个更简单的方法,用 visual studio 代码打开你的文件夹,安装一个名为 Batch Rename by jannisx11 v0.0.3

的插件

安装后,select 所有您希望更改名称的文件夹或文件,然后突出显示您要替换的位,然后您可以查找并替换或使用 ctrl+d 以 select 接下来,直到所有需要更改的文件都被 selected。现在您只需键入即可更改名称。准备就绪后,您可以保存,它会自动为您重命名所有文件。 1 个通用项 -> 1 个通用项 当考虑到我要求一个 cmd 或 power-shell 示例时,这不是对原始问题的回答,但我的印象是,在我做更多研究之前,这是唯一的两种方法,我应该做更多一开始就深入研究。