中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 请各位大侠写个winxp下的批处理脚本
作者:
标题: 请各位大侠写个winxp下的批处理脚本 上一主题 | 下一主题
wy1122wy
新手上路





积分 8
发帖 2
注册 2006-5-6
状态 离线
『楼 主』:  请各位大侠写个winxp下的批处理脚本

比如有这样一个目录
H:\
│  a.txt
│  
├─a3
│  │  a3.txt
│  │  
│  └─a3
│      │  a31.txt
│      │  
│      └─a4
│          │  a6.txt
│          │  
│          └─a5
│                  a6.txt
│                  
└─a4
    │  a1.txt
    │  
    └─g
        │  a1.txt
        │  
        └─ar
            │  a8.txt
            │  
            └─f
                │  a23.txt
                │  
                └─afg
                        a8.txt

请问如何遍历所有目录,并对目录下的txt文件进行改名操作,改成bak!

我需要知道的是在不知道子目录名的情况下,如何进行目录遍历和操作。

2006-5-6 17:25
查看资料  发短消息 网志   编辑帖子  回复  引用回复
3742668
荣誉版主





积分 2013
发帖 718
注册 2006-2-18
状态 离线
『第 2 楼』:  

遍历目录可以用for命令的/r参数,你只需要知道顶层目录名就行了.
@echo off
pushd h:\
for /r . %%i in (*.txt) do @ren "%%i" "%%~ni.bak"
popd
当然,你也可以不用for来遍历,改用dir或者xcopy来打印查找的文件到一临时文件,然后根据文件内容进行操作,这种方法比较灵活,可以指定各种文件属性,不过缺点是会产生临时文件,如果不产生临时文件用for+dir或for+xcopy的话效率就不怎么样了。
dir:
pushd f:\
dir /s *.txt >tmp1.txt
popd
xcopy:
pushd h:\
xcopy /l /s /h /f *.txt %tmp%\ >tmp1.txt
popd
得到tmp1.txt后再用for根据tmp1中的文件列表进行操作。

2006-5-6 18:10
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
wy1122wy
新手上路





积分 8
发帖 2
注册 2006-5-6
状态 离线
『第 3 楼』:  

谢谢3742668!:)
对于 for参数,感觉好难弄明白,还有批处理脚本命令是如何对文本文件的内容进行读取操作.
有不有这方面的 具体例子,越多越详细的例子教程.

2006-5-11 18:14
查看资料  发短消息 网志   编辑帖子  回复  引用回复

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


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



论坛跳转: