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}
dir
(Get-ChildItem
的别名)将递归列出 .png 文件。 (-rec
-> -recurse
,-filt
-> -filter
)
- 然后通过管道传输到
ren
(Rename-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 示例时,这不是对原始问题的回答,但我的印象是,在我做更多研究之前,这是唯一的两种方法,我应该做更多一开始就深入研究。
我是 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}
dir
(Get-ChildItem
的别名)将递归列出 .png 文件。 (-rec
->-recurse
,-filt
->-filter
)- 然后通过管道传输到
ren
(Rename-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 示例时,这不是对原始问题的回答,但我的印象是,在我做更多研究之前,这是唯一的两种方法,我应该做更多一开始就深入研究。