中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
作者:
标题: 批量按序更改文件名(已结) 上一主题 | 下一主题
buddiyar
初级用户





积分 160
发帖 75
注册 2006-6-28
状态 离线
『楼 主』:  批量按序更改文件名(已结)

现有25个文本文件,其名称按序分别由1.txt增至25.txt,其内容对应于文件名.现欲写一批处理程序一次性按序更改其名称,要求将2txt更名为1txt,3txt则相应更名为2txt,以此类推至25.txt更名为24.txt.而1.txt更名为250.txt!

我自己写的程序如下,有错误却苦于无法修正,请高手指点
--------------------------rennum.bat-------------------------------
rem 生成文本文件
for /l %%i in (1,1,25) do echo %%i >%%i.txt

rem 生成过渡变量文件
for /l %%i in (2,1,25) do echo %%i >> num.txt

setlocal ENABLEDELAYEDEXPANSION

ren 1.txt temp.txt

rem 减序更名文件
for /f %%i in (num.txt) do ( set /a j=%%i && set /a j=j-1 && ren %%i.txt %j%.txt )

ren temp.txt 25.txt
ENDLOCAL

[ Last edited by buddiyar on 2006-7-15 at 01:13 ]

2006-7-9 02:27
查看资料  发送邮件  发短消息 网志  OICQ (243589543)  编辑帖子  回复  引用回复
doscc
中级用户




积分 256
发帖 93
注册 2006-3-26
来自 广东
状态 离线
『第 2 楼』:  



  Quote:

  1. @echo off & setlocal ENABLEDELAYEDEXPANSION
  2. if exist 1.txt ren 1.txt 250.txt
  3. for /l %%i in (2,1,25) do (
  4. set /A j=%%i-1
  5. ren %%i.txt !j!.txt
  6. )
        DOSCC    2006-07-09  03:02



2006-7-9 03:10
查看资料  发短消息 网志   编辑帖子  回复  引用回复
buddiyar
初级用户





积分 160
发帖 75
注册 2006-6-28
状态 离线
『第 3 楼』:  

ren %%i.txt !j!.txt

哪位兄弟能解释一下"!j!.txt"吗

小弟刚开始学这个啊

在此谢过先

2006-7-9 05:53
查看资料  发送邮件  发短消息 网志  OICQ (243589543)  编辑帖子  回复  引用回复
buddiyar
初级用户





积分 160
发帖 75
注册 2006-6-28
状态 离线
『第 4 楼』:  

小的搜了一下啊
!好象是"变量顶界符"
但是具体是什么意思我还是不知道

哪位兄弟能不能给点具体的解释或参考资料啊

联系QQ:243589543 或
mail: sshong@qianlong.com

2006-7-9 06:34
查看资料  发送邮件  发短消息 网志  OICQ (243589543)  编辑帖子  回复  引用回复
namejm
荣誉版主

batch fan


积分 5226
发帖 1737
注册 2006-3-10
来自 成都
状态 离线
『第 5 楼』:  

  先用setlocal ENABLEDELAYEDEXPANSION然后再用!,表示启用了变量延迟,请参考这个帖子。

什么情况下该启用变量延迟:
http://www.cn-dos.net/forum/view ... F%E5%BB%B6%E8%BF%9F

2006-7-11 09:49
查看资料  发短消息 网志   编辑帖子  回复  引用回复
doscc
中级用户




积分 256
发帖 93
注册 2006-3-26
来自 广东
状态 离线
『第 6 楼』:  



  Quote:
Originally posted by namejm at 2006-7-11 09:49:
  先用setlocal ENABLEDELAYEDEXPANSION然后再用!,表示启用了变量延迟,请参考这个帖子。

什么情况下该启用变量延迟:
[url]http://www.cn-dos.net/forum/viewth ...



2006-7-11 16:12
查看资料  发短消息 网志   编辑帖子  回复  引用回复

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


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



论坛跳转: