僅使用原始文件名的一部分重命名多個文件

僅使用原始文件名的一部分重命名多個文件

我想重命名一個資料夾中的 40 個 png 文件,它們的名稱很長。它們按順序命名,“blah...blah...blah160.png”、“blah...blah...blah200.png”,即在40 個字母數字字元之後是三位數字的序號(160 ),我只想在文件名中保留最後三位數字,因此,“blah...blah...blah160.png”應該變成“160.png”,是否有一個簡單的一行DOS(cmd.exe )命令在贏7?

答案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”行以實際刪除具有長名稱的版本。

可以將其壓縮為更少的行,但這會使其更難以理解。

相關內容