中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 批处小玩意! 玩出你的水平!
« [1] [2] »
作者:
标题: 批处小玩意! 玩出你的水平! 上一主题 | 下一主题
GOTOmsdos
铂金会员

C++启程者


积分 5154
发帖 1827
注册 2003-7-18
状态 离线
『第 16 楼』:  奇怪的参数传递!

一:
用 &&, 结果for /r 后面的doPath全部为d:\
for %%a in (c d e) do set doPath=%%a:\&&for /r "%doPath%" %%b in (*.exe) do if exist %%b ECHO %%b %%~nb

二:
用分行 配合 ()号,结果for /r 后面的doPath全部为e:\
for %%a in (c d e) do (
set doPath=%%a:\
for /r "%doPath%" %%b in (*.exe) do (if exist %%b ECHO  %%b)
)

三:
只有用 %1 式的参数方式传递参数才正常
for %%a in (c d e) do call :tag %%a:\
:tag
if #==#%1 goto :eof
for /r "%1" %%b in (*.exe) do if exist %%b ECHO %%b %%~nb

[ Last edited by GOTOmsdos on 2007-1-18 at 11:52 AM ]

2007-1-18 11:24
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
GOTOmsdos
铂金会员

C++启程者


积分 5154
发帖 1827
注册 2003-7-18
状态 离线
『第 17 楼』:  



  Quote:
Originally posted by hxuan999 at 2007-1-16 11:37 AM:
第二个是,for /r 后面的路径参数是一定要是路径,也就是说C:要写成 ...

仅仅根目录才需要 \ 号,子目录不需要的

2007-1-18 11:55
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
wxjclh
初级用户





积分 65
发帖 32
注册 2007-1-17
状态 离线
『第 18 楼』:  

我也来一句吧
I服了YOU!

2007-1-18 23:45
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
hxuan999
中级用户

DOS之日


积分 337
发帖 161
注册 2006-11-4
状态 离线
『第 19 楼』:  



  Quote:
Originally posted by GOTOmsdos at 2007-1-17 23:55:


仅仅根目录才需要 \ 号,子目录不需要的

谢谢回复,我说的就是那个意思,呵.子目录就是路径的形式,但是C:只是个驱动器,并没有指定路径,所以写成C:\才是从根目录开始.



for /f %%h in (`echo hxuan`) do for /f %%x in (`echo hxuan`) do if %%h==%%x nul
2007-1-19 00:42
查看资料  发送邮件  发短消息 网志  OICQ (33899867)  编辑帖子  回复  引用回复
« [1] [2] »
请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


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



论坛跳转: