中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 文件夹统一改名遇到一些问题
作者:
标题: 文件夹统一改名遇到一些问题 上一主题 | 下一主题
wmstx
新手上路





积分 7
发帖 7
注册 2009-5-30
状态 离线
『楼 主』:  文件夹统一改名遇到一些问题

斑竹好,我是新手,想做一个给文件夹统一改名的bat,但遇到一些问题。

for /f %%i in ('dir  /b') do (
set name=%%i
set newname=!name:01-01=01-02!
if not "!name!"=="!newname!" ren "!name!" "!newname!"
)

1.上面的程序可以统一改名,但此程序只能在当前文件下运行,就是说如果此程序在e:\1文件夹中,运行后可以把1文件夹中的所有以01-01命名的都改成01-02,但我想把程序放在桌面上运行,就不能改了,即使我指定了文件路径(for /f %%i in ('dir e:\1 /b') do ()。

2.如果此程序已在当前文件下,我想用一个新的批处理来调用这个程序,但起不到改名的效果.

3.如果我想每天都改名,01-02改成01-03,04,05,06......可以做成一个小的循环吗,我只会用if和goto语句,其他的可以做吗?

问题有点多,请高手相助.万分谢谢!

2010-1-26 12:14
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
slore
铂金会员





积分 5212
发帖 2478
注册 2007-2-8
状态 离线
『第 2 楼』:  

自己echo出来看。

如果不在当前目录,你得到是文件夹名不带路径。。你要加上。

ren "d:\1\!name!" "d:\1\!newname!"

或者在循环前
cd /d d:\1

切换目录到你要处理的目录



S smile 微笑,L love 爱,O optimism 乐观,R relax 放松,E enthusiasm 热情...Slore
2010-1-26 18:45
查看资料  发短消息 网志   编辑帖子  回复  引用回复
wmstx
新手上路





积分 7
发帖 7
注册 2009-5-30
状态 离线
『第 3 楼』:  

十分感谢楼主。

在循环前加上 cd /d d:\1 可以实现改名。

但这个命令ren "d:\1\!name!" "d:\1\!newname!" 还是不能改名。

2010-1-27 12:36
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复

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


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



论坛跳转: