Windows 7 脚本更改部分文件名

Windows 7 脚本更改部分文件名

我有一组文件,其名称格式如下,其中car-#######-NNNNNNN.xxx#######是需要作为文件名的一部分保留的一系列数字,并且xxx是表示文件格式的扩展名,例如“jpg”、“bmp”或“png”,也需要保留。我需要从文件名中删除car-和 ( 的重复),只留下。-NNNNNNN-##############.xxx

这可能吗?我该怎么做?

答案1

将此文本复制到文本编辑器(记事本)中,然后将文件保存rename.bat到文件所在的文件夹中并运行它。

xxx将该行更改IF %ext% EQU xxx ren %1 "%fnum%.%ext%"为保存文件的扩展名。

@ECHO 关闭
对于/f“tokens=*”%%i ^
在('forfiles / d + 0 / c“ cmd / c if @isdir == FALSE echo @file”')^
执行调用:子程序%%i
暂停

:子程序
设置 fname=%1
设置 ext=%fname:~-4,3%
设置 fnum=%fname:~5,7%
REM 回显 %fnum%
REM 回显 %ext%
如果 %ext% EQU xxx ren %1 "%fnum%.%ext%"

答案2

Vinayak 的答案看起来不错,如果你#######始终正好是七个字符。如果字符数可以变化,并且您想按分隔符而不是计数进行操作,请尝试

for /f "delims=-. tokens=1-4" %a in ('dir /b/a-d car-*-*.*') ^
                                    do @echo ren %a-%b-%c.%d %b.%d

运行此命令,如果它显示正确的重命名命令,请删除echo并再次运行。我将其拆分为两行,以便适合屏幕;如果您愿意,可以将其全部合并为一行(删除^)。如果您将其放入脚本(批处理文件),请将所有出现的 更改%%%

警告:如果您的NNNNNNN并不总是你的#######例如,您有名为car-1234567-1234567.jpg和的文件car-1234567-9999999.jpg,它将重命名找到的第一个文件并为其他文件提供错误消息。

答案3

Windows 文件管理器不提供使用模式或正则表达式的复杂多文件重命名功能(与普通文件管理器不同)。

如果你有 Linux 发行版,我建议在 Linux 下完成这项工作。只需使用鹦鹉螺您将能够批量重命名并使用基于模式的搜索/替换功能。

或者,如果你无法访问 Linux 发行版,请尝试安装总指挥官。此文件管理器具有良好的批量重命名功能。您还可以阅读有关这一页

相关内容