我需要使用以下文件名格式重命名文件夹中的所有文件;
itemID-直瓶.png
至
itemID-bottle.png
我如何使用 cmd 脚本或在命令行中完成此操作?
例子;
REDHI20806-straight-bottle.png 到 REDHI20806-bottle.png
我应该说,这是在 Windows 中,我想使用命令行或批处理文件对特定驱动器上文件夹中的所有文件运行此重命名
我需要使用以下文件名格式重命名文件夹中的所有文件;
itemID-直瓶.png
至
itemID-bottle.png
我如何使用 cmd 脚本或在命令行中完成此操作?
例子;
REDHI20806-straight-bottle.png 到 REDHI20806-bottle.png
我应该说,这是在 Windows 中,我想使用命令行或批处理文件对特定驱动器上文件夹中的所有文件运行此重命名
在Windows上,您可以使用 PowerShell,它默认安装在 Windows 7 上,并且可以在以前的版本上下载和安装。使用 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
如果只有文件名的最后一部分 ( straight-bottle.png
) 需要更改 ( bottle.png
) 你可以简单地这样做:
REN ??????????-straight-bottle.png ??????????-bottle.png
(虽然我没有测试这个)
就个人而言,我会使用专门为批量重命名而设计的工具,例如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.
我最终使用了wimh 答案的修改版本,但不是“??????????”,而是使用“*”,我认为它可以更好地处理不同长度的名称。
ren *-straight-bottle.png *-bottle.png