中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-08-02 06:51
48,037 主题排行 / 350,122 发帖 / 今日 2 篇 / 48,250 会员排行
DOS批处理 & 脚本技术(批处理室) » 问个关于CALL调用的问题
可打印版本  1,099 / 6
第1楼 0401 发表于 2006-10-21 02:50
中级用户 发帖 88 积分 435
问个关于CALL调用的问题
问题代码如下:


保存为.CMD文件后,我带参数运行
.CMD TEST
我想得到这样的输出


TEST /ADD /ADD
最主要的是最后一行.这段代码是可行的
但是如果我去掉代码中的 "CMD /C" 直接使用"%CMDFILE% %* /ADD"却不行,根本没把参数传递回去,为什么?

测试环境是XP下的CMD
第2楼 不得不爱 发表于 2006-10-21 03:13
超级版主 发帖 2,044 积分 5,310 来自 四川南充
@ECHO OFF
IF %1#==# GOTO :EOF
IF NOT %3#==# GOTO BEGIN
SET CMDFILE=%~S0
GOTO:TEST %1 %2
GOTO :EOF

:BEGIN
ECHO %*
GOTO :EOF

:TEST
ECHO [%*]
%CMDFILE% %* /ADD
GOTO :EOF
第3楼 0401 发表于 2006-10-21 03:32
中级用户 发帖 88 积分 435
好办法!以前都没注意到GOTO还可以带参数过去...
多谢指点~问题解决了

再问下:使用CALL为何不能达到同样的效果?
第4楼 9527 发表于 2006-10-21 03:38
银牌会员 发帖 438 积分 1,185 来自 北京
GOTO 能带参数???我怎么不知道呢?还有qwe1234567版主我觉得GOTO:TEST %1 %2这条语句 应该 GOTO TEST %1 %2这样才对吧,唉,GOTO能带参数???第一次听说,呵呵.........
第5楼 0401 发表于 2006-10-21 03:47
中级用户 发帖 88 积分 435
8好意思,小弟才疏学浅,GOTO能带参数只是我的理解,可能我理解的有点出入,但至少GOTO:TEST %1 %2是可行的,至于带不带冒号又有何关系.有心帮忙的话回答下我的问题吧.
再次谢谢 qwe1234567
第6楼 不得不爱 发表于 2006-10-21 04:25
超级版主 发帖 2,044 积分 5,310 来自 四川南充
GOTO 是不带参数的,带不带冒号都一样
第7楼 0401 发表于 2006-10-21 23:33
中级用户 发帖 88 积分 435
我错了~~~确实是不带参数,理解错了,因为老大的这句GOTO:TEST %1 %2我才这么认为的,现在试试没有%1 %2一样行.但是有的环境下我想使用CALL呀,可是还没人帮我解答这个疑问,自己回去再想想先~
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023