仅使用原始文件名的一部分重命名多个文件

仅使用原始文件名的一部分重命名多个文件

我想重命名一个文件夹中的 40 个 png 文件,它们的名称很长。它们以连续的方式命名,例如“blah...blah...blah160.png”、“blah...blah...blah200.png”,即 40 个字母数字字符后是三位数字的序列号(160),我希望文件名中只保留最后三位数字,因此“blah...blah...blah160.png”应变为“160.png”,在 win 7 中是否有一个简单的一行 DOS(cmd.exe)命令?

答案1

以下 cmd 文件应该可以完成这项工作:

@echo off & setlocal

for %%F in (*.png) do call :doIt %%F
goto xit

:doIt
set name=%~n1
set num=%name:~-3%
set ext=%~x1
set lentest=%name:~40,3%

if not [%lentest%]==[] (
  copy "%1" %num%%ext%
::  del "%1"  
)
goto :EOF

:xit
endlocal

取消注释“del”行以实际删除具有长名称的版本。

可以将其压缩为更少的行,但这会使其更难理解。

相关内容