Board logo

标题: 怎样用文本行给对应的文件重命名. [打印本页]

作者: zzhh612     时间: 2007-4-3 14:25    标题: 怎样用文本行给对应的文件重命名.
有如下歌名文本(GM.txt)百行:
聪明累
伤痕-林忆莲
爱上了
遇见 - 孙燕姿
徐怀钰 - 分飞
酸酸甜甜就是我
流氓大亨
江南
.....
...
且在e:\music文件夹中有按数字序号命名的MP3(1~100),文件名与同名行号的歌名一一对应(即1.mp3 对应的聪明累,2.mp3对应的是伤痕-林忆莲....)我怎样才能用批处理将这百首歌所对应的歌名进行重命名.

作者: flyinspace     时间: 2007-4-3 15:04    标题: 假设该批处理在e;\music这个文件夹里。
@echo off & EnableDelayedExpansion

set count=0

for /f "tokens=* " %%i in ( GM.txt) do (
set /a count=!count!+1
ren "!count!.mp3" "%%i.mp3"
)
-----------------------------------------------------------------------
如此就改完了。。

作者: everest79     时间: 2007-4-3 15:06
for /f "delims=" %%i in (gm.txt) do (
set /a x+=1
call :renmp3 %x% %%i
)
pause

:renmp3
ren mp3%1.mp3 %2.mp3

作者: flyinspace     时间: 2007-4-3 15:08
Originally posted by everest79 at 2007-4-3 02:06 AM:
for /f "delims=" %%i in (gm.txt) do (
set /a x+=1
call :renmp3 %x% %%i
)
pause

:renmp3
ren mp3%1.mp3 %2.mp3



噢。。这个文件会出问题的。。


你忘记加goto :EOF 了。。

而且可以设想最后一次会出现文件找不到的情况。。

作者: wudixin96     时间: 2007-4-3 22:40
Originally posted by flyinspace at 2007-4-3 03:04 PM:
@echo off & EnableDelayedExpansion

set count=0

for /f "tokens=* " %%i in ( GM.txt) do (
set /a count=!count!+1
ren "!count!.mp3" " ...


为何要加空格??不能直接tokens=*吗??

还有

for /f "delims=" %%i in (gm.txt) do (
set /a x+=1
call :renmp3 %x% %%i
)
pause

:renmp3
ren mp3%1.mp3 %2.mp3

不需要变量延迟吗?是否是在for之前没有定义x,所有不需要变量延迟??
下面一段好像明白了。如果延迟写成set /a x=!x!+1。

Last edited by wudixin96 on 2007-4-3 at 10:49 PM ]

作者: lxmxn     时间: 2007-4-4 00:54    标题: 我也来灌灌水~



@echo off
for /f "tokens=1* delims=:" %%a in ('findstr /n .* GM.txt') do ren %%a.mp3 "%%b".mp3


作者: zzhh612     时间: 2007-4-4 02:05
楼上everest79的最后一名句应为
ren %x%.mp3 %1.mp3

改了后运行成功.
谢谢答复.

Last edited by zzhh612 on 2007-4-4 at 02:06 AM ]

作者: a201341717     时间: 2007-4-4 02:37

作者: zzhh612     时间: 2007-4-4 02:43    标题: 2楼的代码没成功,不知为何
该批处理在e:\music这个文件夹里。GM.txt也在该文件夹中.
运行2楼的代码后显示:
运算符不存在。
系统找不到指定的文件。

哪个运算符不存在呀???文件都在呀.

作者: zzhh612     时间: 2007-4-4 02:45    标题: 6楼的运行成功,
运行正确而且简洁,值得学习.

作者: qingfushuan     时间: 2007-4-4 04:16
6F的构思巧妙,赞一个

学习了