中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-08-08 05:39
48,041 主题排行 / 350,128 发帖 / 今日 3 篇 / 48,253 会员排行
DOS批处理 & 脚本技术(批处理室) » [求助]按列表更名
可打印版本  777 / 11
第1楼 cad55 发表于 2008-04-21 11:11
高级用户 发帖 329 积分 620
[求助]按列表更名
将01.txt内列表
sdfas
oio
lfosdf
dfie
sdfl
6424
..............

的文件名按02.txt列表更名为
1
2
3
4
............

[ Last edited by cad55 on 2008-4-21 at 11:13 AM ]
第2楼 bat-zw 发表于 2008-04-21 11:19
金牌会员 发帖 1,276 积分 3,105
问题是不是没讲清楚:
如真要这样,很容易啊
cd.>1.txt
for /f "delims=" %%ii in (2.txt) do echo %%i>>1.txt
我想楼主的意思不是这样的吧
第3楼 cad55 发表于 2008-04-21 11:28
高级用户 发帖 329 积分 620
Originally posted by zw19750516 at 2008-4-21 11:19 AM:
如真要这样,很容易啊
cd.>1.txt
for /f "delims=" %%ii in (2.txt) do echo %%i>>1.txt
我想楼主的意思不是这样的吧



不是这个意思...

在一个文件夹内有VV.JPG SS.JPG SSSSS.JPG .........
用01.txt记录它们的文件名成一列表:
再自定义一个02.txt列表文件:01.jpg 02.jpg 03.jpg .....

求助一个BAT.
运行它.可以将此文件夹的01.txt内的列表名.文件按02.txt名称来更名.

更改后此文件夹内:01.jpg 02.jpg 03.jpg .....

[ Last edited by cad55 on 2008-4-21 at 11:30 AM ]
第4楼 terse 发表于 2008-04-21 11:39
银牌会员 发帖 946 积分 2,404
直接 DIR 行不?
@echo off
for /f "delims=" %%i in ('dir /b *.jpg') do (
set/a n+=1
call echo ren %%~fi 0%%n%%%%~xi
)
pause
第5楼 bat-zw 发表于 2008-04-21 11:40
金牌会员 发帖 1,276 积分 3,105
放在文件所在文件夹中运行(未测试)

晕,原来有人已经发了。

[ Last edited by zw19750516 on 2008-4-21 at 11:43 AM ]
第6楼 cad55 发表于 2008-04-21 11:55
高级用户 发帖 329 积分 620
Originally posted by zw19750516 at 2008-4-21 11:40 AM:
放在文件所在文件夹中运行(未测试)
第7楼 bat-zw 发表于 2008-04-21 12:12
金牌会员 发帖 1,276 积分 3,105
未测试:


[ Last edited by zw19750516 on 2008-4-21 at 12:15 PM ]
第8楼 zh159 发表于 2008-04-21 13:00
金牌会员 发帖 1,467 积分 3,687
如果数量不是太多,可以考虑这个
第9楼 cad55 发表于 2008-04-21 13:11
高级用户 发帖 329 积分 620
Originally posted by zh159 at 2008-4-21 01:00 PM:
如果数量不是太多,可以考虑这个
第10楼 cad55 发表于 2008-04-21 13:24
高级用户 发帖 329 积分 620
Originally posted by cad55 at 2008-4-21 01:11 PM:



显示列表对应的内容了..但没有完成更名.........



谢谢...这样修改一下..就可以了..........

echo off
setlocal enabledelayedexpansion
for /f "delims=" %%i in (02.txt) do set /a n+=1&set file!n!=%%i
set n=
for /f "delims=" %%i in (01.txt) do (
set /a n+=1
call ; ren "%%i" "%%file!n!%%"
)


谢谢各位了.........
第11楼 terse 发表于 2008-04-21 13:32
银牌会员 发帖 946 积分 2,404
这个意思吗?
@echo off
for /f "delims=" %%i in (1.txt) do call :lp "%%i"
pause
goto :eof
:lp
for /f "delims=" %%a in (2.txt) do if not defined %%a set %%a=i & ren %1 %%a&goto :eof
第12楼 cad55 发表于 2008-04-21 14:40
高级用户 发帖 329 积分 620
Originally posted by terse at 2008-4-21 01:32 PM:
这个意思吗?
@echo off
for /f "delims=" %%i in (1.txt) do call :lp "%%i"
pause
goto :eof
:lp
for /f "delims=" %%a in (2.txt) do if not defined %%a set %%a= ...





是这样的效果

谢谢....
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023