Board logo

标题: 批量重命名后的一个疑问? [打印本页]

作者: junyee     时间: 2007-11-3 12:51    标题: 批量重命名后的一个疑问?

--------------------
D:\下有许多mp3文件
如 a.mp3 b.mp3 c.mp3 d.mp3 e.mp3 ......
想批量重命名它们,在原文件名前加上序号

-----------------------------------------------------------
@echo off
setlocal ENABLEDELAYEDEXPANSION
SET num=0
FOR /F %%i IN ('dir /b *.mp3') DO (
                          SET /A num+=1
                          REN %%i !num!!%%i
                          )
pause

------------------------------------------------------------
在坛里找了个类似的代码稍加改动,运行后还算成功。
可生成的文件名为 1a.mp3 2b.mp3 ... 10j.mp3 ..100av.mp3...
我想让它成为    001a.mp3 002b.mp3...010.mp3 ...100av.mp3...

请教下各位有什么办法可以实现这个目的?
作者: abcd     时间: 2007-11-3 12:55
似乎已经有讨论的,搜索吧

[ Last edited by abcd on 2007-11-4 at 05:57 PM ]
作者: junyee     时间: 2007-11-3 14:15
感谢abcd兄的帮助。
测试了下,有问题。
如果我的D:\下有10个mp3文件。对应的运行批处理后生成的文件名前会加上10个字符,如果有9个mp3,多出9个数字符,8个mp3,多出8个数字符.
能不能稍加改善啊?

我把set num=00000000!num!改成set num=00!num!
似乎可以.
可当mp3文件个数少于3时,生成的文件名又会成为1a.mp3 或01.mp3
........
作者: junchen2     时间: 2007-11-3 14:42
set n=000!num!&set n=!n:~-3!
echo !n!

[ Last edited by junchen2 on 2007-11-3 at 02:43 PM ]
作者: guo882633     时间: 2007-11-3 15:44    标题: ^_^

@echo off
del e.txt >nul
dir /b *.mp3 >e.txt
set j=
set /p=请输入编号:
::输入编号时要注意.要输入你想要的最前面那个编号的前一个数字
for /f %%i in (e.txt) do set ot=%%i && set /a j+=1 &&call :k
:k
ren %ot% %j%-%ot%
echo %j%-%ot% >已做好的歌名.txt
作者: qinwang     时间: 2007-11-4 16:49
学习了啊,不错。谢谢