我想重命名一个文件夹中的 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”行以实际删除具有长名称的版本。
可以将其压缩为更少的行,但这会使其更难理解。