批处理,批量改名。我有很多文件,是以编号保存在我电脑上,比如001.002.003.004等等

同时我有一个文本文档,每一行保存的是文件原来的名字,比如
(第一行) 我 (001的原来名字)
(第二行) 你(002的原来名字)
(第三行) 他 (003的原来名字)
现在想把所有的文件改回原来的名字,找了一些软件发现实现不了这个功能。所以求助各位高手
把批处理代码给我把

简单,假设这个文档是d:\1.txt,要修改的文件在d:\a\中,假设是001.jpg,002.jpg,003.jpg```到999.jpg
在d盘根目录下建立一个2.bat(名字任取),输入

setlocal enabledelayedexpansion
set/a "c=1"
set "d=00%c%"
for /f "tokens=1 delims=" %%i in (1.txt) do (
ren d:\a\!d!.jpg %%i.jpg
set/a "c+=1"
if !c! lss 10 (set "d=00!c!") else (if !c! lss 100 (set "d=0!c!") else (set "d=!c!"))
if !c! geq 1000 goto k
)
:k
exit

好了!ok不ok?
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-11-01
假如你保存原来名字的文本是a.txt
要改名的文件是.mpg
因为不知你文档的格式,下面的脚本没有直接改名,而是生成改名的批处理供你核对,核对无误后运行生成的r.bat 即可实现改名,有问题再追问或百度hi我。

@echo off
setlocal enabledelayedexpansion
(for /f "tokens=3 delims=()" %%i in (a.txt) do (
set /a n+=1
set /a m=00!n!
set m=!m:~-3!
echo ren !m!.mpg %%i))>r.bat
notepad r.bat本回答被提问者采纳
第2个回答  2012-10-31
可以考虑使用批处理来实现你的要求就是经常能看到以.cmd
网上找找吧,我也不是专业搞电脑的 仅是提供个建议
第3个回答  2012-11-01
@echo off
setlocal enabledelayedexpansion
set x=1000
for /f "delims=" %%a in ("文本文档.txt") do (
set /a x+=1
for %%b in (!x:~-3!.*) do ren "%%b" "%%a%%~xb"
)

因为不知道需要改名的文件后缀是什么,所以只好不区分后缀了,如果知道后缀名的话可以更简单点,效率更高点。
不知道楼主的文本文档里有没有括号里的那些字。如果有的话,需要把"delims="换成sudoku52的"token=3 delims=()"

本来想直接回复sudoku52的答案,结果百度一直提示评论重复,只好发在这里:
O(∩_∩)O sudoku52兄考虑的周全,先生成批处理,检查无误后再去改文件名。另外,如果楼主的文本文档里有括号里的文字的话,就该按照sudoku52写的"tokens=3 delims=()"。sudoku52应该修改下 "echo "后面要加个"ren " (百度提示评论重复,多打些字再试试)
第4个回答  2012-10-31
你最好把那个文本文档的部分内容原样放上来让人看一下。
相似回答