我有一个遗留程序,将文件名创建为 <Common Prefix>_<Number>.dat
并将它们按升序排列在列表中,如下所示:
A2_132.dat
A2_184.dat
A2_24.dat
A2_362.dat
但是,我需要按照用作尾随名称的数字升序重命名文件,例如132, 184, 24, 362
按照其数值的顺序 24, 132, 184, 362
这样我就可以将文件名排序为:
A2_24.dat
A2_132.dat
A2_184.dat
A2_362.dat
我认为,文件名需要重命名为:
A2_024.dat
A2_132.dat
A2_184.dat
A2_362.dat
考虑到我可能必须递归地访问所有子文件夹,如何通过 Windows 批处理程序或 C 程序来完成此操作。 我暂时不想更改旧程序来更改文件生成和命名逻辑。
最佳答案
misunderstood the recursive part so, only added in code...
所以,如果我很好地理解了这个问题,也许这段代码“适合”你:
@echo off & cd /d "%~dp0"
setlocal EnableDelayedExpansion
for /r "%~dp0" %%R in (*.dat) do (
set "_ren_it=%%~fR"
set "_to_add_0=%%~nxR"
for /f "tokens=1,2 delims=_" %%i in ('echo/!_to_add_0!') do (
set _j=00%%j
set "_File_Ren_=%%~i_!_j:~-7!"
ren "!_ren_it!" !_File_Ren_!
)
)
关于c - 如何通过批处理文件重命名具有数字后缀的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51235418/