中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
作者:
标题: [求助]按列表更名 上一主题 | 下一主题
cad55
高级用户





积分 620
发帖 329
注册 2007-12-5
状态 离线
『楼 主』:  [求助]按列表更名

将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 ]

2008-4-21 11:11
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
bat-zw
金牌会员

永远的学习者


积分 3105
发帖 1276
注册 2008-3-8
状态 离线
『第 2 楼』:  问题是不是没讲清楚:

如真要这样,很容易啊
cd.>1.txt
for /f "delims=" %%ii in (2.txt) do echo %%i>>1.txt
我想楼主的意思不是这样的吧



批处理之家新域名:www.bathome.net
2008-4-21 11:19
查看资料  发送邮件  发短消息 网志  OICQ (841615149)  编辑帖子  回复  引用回复
cad55
高级用户





积分 620
发帖 329
注册 2007-12-5
状态 离线
『第 3 楼』:  



  Quote:
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 ]

2008-4-21 11:28
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
terse
银牌会员





积分 2404
发帖 946
注册 2005-9-8
状态 离线
『第 4 楼』:  

直接 DIR 行不?
@echo off
for /f "delims=" %%i in ('dir /b *.jpg') do (
set/a n+=1
call echo ren %%~fi 0%%n%%%%~xi
)
pause



简单!简单!再简单!
2008-4-21 11:39
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
bat-zw
金牌会员

永远的学习者


积分 3105
发帖 1276
注册 2008-3-8
状态 离线
『第 5 楼』:  

放在文件所在文件夹中运行(未测试)
@echo off&setlocal enabledelayedexpansion
for /f "delims=" %%i in ('dir /b *.jpg') do (
     set /a n+=1
     ren %%i 0!n!.jpg
)
晕,原来有人已经发了。

[ Last edited by zw19750516 on 2008-4-21 at 11:43 AM ]



批处理之家新域名:www.bathome.net
2008-4-21 11:40
查看资料  发送邮件  发短消息 网志  OICQ (841615149)  编辑帖子  回复  引用回复
cad55
高级用户





积分 620
发帖 329
注册 2007-12-5
状态 离线
『第 6 楼』:  



  Quote:
Originally posted by zw19750516 at 2008-4-21 11:40 AM:
放在文件所在文件夹中运行(未测试)
[code]@echo off&setlocal enabledelayedexpansion
for /f "delims=" %%i in ('dir /b *.jpg') do (
     set /a n+=1
     ren %%i 0!n ...

谢谢楼上两位..

但它不一个顺序了...也就是要自定义02.txt内的命称
02.txt可能是01.jpg   88.jpg   85V.JPG........
要对应列表来更名....

2008-4-21 11:55
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
bat-zw
金牌会员

永远的学习者


积分 3105
发帖 1276
注册 2008-3-8
状态 离线
『第 7 楼』:  未测试:


@echo off
set n=-1
for /f "delims=" %%i in (01.txt) do call :lp %%i
pause>nul&goto :eof
:lp
set /a n+=1
call,set "m=skip=%n%"
if %n% equ 0 set m=
for /f "%m% delims=" %%i in (02.txt) do call,ren %~nx1 %%~nxi&goto :eof
[ Last edited by zw19750516 on 2008-4-21 at 12:15 PM ]



批处理之家新域名:www.bathome.net
2008-4-21 12:12
查看资料  发送邮件  发短消息 网志  OICQ (841615149)  编辑帖子  回复  引用回复
zh159
金牌会员




积分 3687
发帖 1467
注册 2005-8-8
状态 离线
『第 8 楼』:  

如果数量不是太多,可以考虑这个
@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 echo ren "%%i" "%%file!n!%%"
)
pause




2008-4-21 13:00
查看资料  发短消息 网志   编辑帖子  回复  引用回复
cad55
高级用户





积分 620
发帖 329
注册 2007-12-5
状态 离线
『第 9 楼』:  



  Quote:
Originally posted by zh159 at 2008-4-21 01:00 PM:
如果数量不是太多,可以考虑这个
[code]@echo off
setlocal enabledelayedexpansion
for /f "delims=" %%i in (02.txt) do set /a n+=1&set file!n!=%%i

set n=
for /f &quo ...

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

2008-4-21 13:11
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
cad55
高级用户





积分 620
发帖 329
注册 2007-12-5
状态 离线
『第 10 楼』:  



  Quote:
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!%%"
)


谢谢各位了.........

2008-4-21 13:24
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
terse
银牌会员





积分 2404
发帖 946
注册 2005-9-8
状态 离线
『第 11 楼』:  

这个意思吗?
@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



简单!简单!再简单!
2008-4-21 13:32
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
cad55
高级用户





积分 620
发帖 329
注册 2007-12-5
状态 离线
『第 12 楼』:  



  Quote:
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= ...



是这样的效果

谢谢....

2008-4-21 14:40
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: