我需要使用以下文件名格式重命名文件夹中的所有文件;
ITEMID-直bottle.png
要
ITEMID-bottle.png
如何使用cmd脚本或在命令行中完成此操作?
示例;
REDHI20806-straight-bottle.png到REDHI20806-bottle.png
我应该说,这是在Windows中,我想使用命令行或批处理文件在特定驱动器上的文件夹中的所有文件上运行此重命名
答案 0 :(得分:7)
在 Windows 上,您可以使用在Windows 7上默认安装的PowerShell,并且可以在以前的版本上下载和安装。使用PowerShell,您可以重命名为:
ls | foreach-object -process {ren $_ (%{$_ -replace "-straight",""})}
在 Unix / Linux 上,不需要安装任何特定内容,您可以将其重命名为:
ls | awk '{print("mv "$1" "$1)}' | cut -f -3,5- -d '-' | sh
PS C:\rename-me> ls
Directory: C:\rename-me
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a--- 10/9/2011 1:35 PM 0 REDHI20806-straight-bottle.png
-a--- 10/9/2011 1:35 PM 0 REDHI20807-straight-bottle.png
-a--- 10/9/2011 1:35 PM 0 REDHI20808-straight-bottle.png
-a--- 10/9/2011 1:35 PM 0 REDHI20809-straight-bottle.png
-a--- 10/9/2011 1:35 PM 0 REDHI20810-straight-bottle.png
PS C:\rename-me> ls | foreach-object -process {ren $_ (%{$_ -replace "-straight",""})}
PS C:\rename-me> ls
Directory: C:\rename-me
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a--- 10/9/2011 1:35 PM 0 REDHI20806-bottle.png
-a--- 10/9/2011 1:35 PM 0 REDHI20807-bottle.png
-a--- 10/9/2011 1:35 PM 0 REDHI20808-bottle.png
-a--- 10/9/2011 1:35 PM 0 REDHI20809-bottle.png
-a--- 10/9/2011 1:35 PM 0 REDHI20810-bottle.png
$ ls -l
total 0
-rw-r--r-- 1 user staff 0 Oct 7 00:54 REDHI20806-straight-bottle.png
-rw-r--r-- 1 user staff 0 Oct 7 00:54 REDHI20807-straight-bottle.png
-rw-r--r-- 1 user staff 0 Oct 7 00:54 REDHI20808-straight-bottle.png
-rw-r--r-- 1 user staff 0 Oct 7 00:54 REDHI20809-straight-bottle.png
-rw-r--r-- 1 user staff 0 Oct 7 00:54 REDHI20810-straight-bottle.png
$ ls | awk '{print("mv "$1" "$1)}' | cut -f -3,5- -d '-' | sh
$ ls -l
total 0
-rw-r--r-- 1 user staff 0 Oct 7 00:54 REDHI20806-bottle.png
-rw-r--r-- 1 user staff 0 Oct 7 00:54 REDHI20807-bottle.png
-rw-r--r-- 1 user staff 0 Oct 7 00:54 REDHI20808-bottle.png
-rw-r--r-- 1 user staff 0 Oct 7 00:54 REDHI20809-bottle.png
-rw-r--r-- 1 user staff 0 Oct 7 00:54 REDHI20810-bottle.png
答案 1 :(得分:1)
如果只需要更改文件名(straight-bottle.png
)的最后一部分(bottle.png
),您可以直接执行此操作:
REN ??????????-straight-bottle.png ??????????-bottle.png
(虽然我没试过这个)
答案 2 :(得分:0)
我最终使用了 wimh's answer 的修改版本,但我使用了“*”而不是“??????????”,我认为它可以更好地处理不同长度的名称。>
ren *-straight-bottle.png *-bottle.png
答案 3 :(得分:0)
就我个人而言,我会使用专门为批量重命名设计的工具,例如renamer。
此命令从当前目录中的所有文件中删除 -straight
文本:
$ renamer --find=-straight --dry-run *
Dry run
✔︎ REDHI20806-straight-bottle.png → REDHI20806-bottle.png
✔︎ GRNHI30030-straight-bottle.png → GRNHI30030-bottle.png
Rename complete: 2 of 2 files renamed.