中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
作者:
标题: 关于CALL的问题 上一主题 | 下一主题
THENEWLIFE
初级用户




积分 78
发帖 64
注册 2008-8-29
状态 离线
『楼 主』:  关于CALL的问题

@ECHO OFF
SETLOCAL
IF %1#==# GOTO :EOF
IF NOT %3#==# GOTO BEGIN
SET CMDFILE=%~S0
CALL:TEST %1 %2
GOTO :EOF

:BEGIN
ECHO %*
GOTO :EOF

:TEST
ECHO [%*]
CMD /C%CMDFILE% %* /ADD
GOTO :EOF

帮忙解释下上面的命令,特别是CALL:TEST %1 %2
我对这句的理解是调用TEST 后面的是2个参数 .不知道这2个参数起到什么用
搜索里面看了下,没有很具体.还请高人详细解释下,最好有个简单的例子

2008-9-12 20:41
查看资料  发短消息 网志   编辑帖子  回复  引用回复
huahua0919
银牌会员




积分 1608
发帖 780
注册 2007-10-7
状态 离线
『第 2 楼』:  


@ECHO OFF
SETLOCAL
::这里的定义好象没有意义,而且用IF来判断最好用双""括起来,不然会有错误
IF %1#==# GOTO :EOF
::这个也是一样可以换成 if not "%3"=""
IF NOT %3#==# GOTO BEGIN
::用短名形式接受当前路径
SET CMDFILE=%~S0
::将前两个参数拿出来传递
CALL:TEST %1 %2
GOTO :EOF

:BEGIN
::显示全部变量
ECHO %*
GOTO :EOF

:TEST
ECHO [%*]
CMD /C%CMDFILE% %* /ADD
GOTO :EOF


2008-9-12 21:28
查看资料  发送邮件  访问主页  发短消息 网志   编辑帖子  回复  引用回复
THENEWLIFE
初级用户




积分 78
发帖 64
注册 2008-8-29
状态 离线
『第 3 楼』:  

::将前两个参数拿出来传递
CALL:TEST %1 %2
是把这2个参数传递给TEST吗.这个有什么意义吗,:TEST
ECHO [%*]
CMD /C%CMDFILE% %* /ADD
GOTO :EOF 还是不能很好的理解

能不能帮忙举个简单点的例子.谢谢

[ Last edited by THENEWLIFE on 2008-9-12 at 10:13 PM ]

2008-9-12 22:11
查看资料  发短消息 网志   编辑帖子  回复  引用回复
chenall
银牌会员




积分 1276
发帖 469
注册 2002-12-23
来自 福建泉州
状态 离线
『第 4 楼』:  

这里的
call :test %1 %2
其实也就是将脚本执行时的前两个参数直接转给:test段.



QQ:366840202
http://chenall.net
2008-9-15 01:37
查看资料  发送邮件  访问主页  发短消息 网志  OICQ (366840202)  编辑帖子  回复  引用回复

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


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



论坛跳转: