|
0401
中级用户
   带走
积分 435
发帖 88
注册 2005-9-24
状态 离线
|
『楼 主』:
问个关于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
保存为.CMD文件后,我带参数运行
.CMD TEST
我想得到这样的输出
[TEST]
[TEST /ADD]
TEST /ADD /ADD
最主要的是最后一行.这段代码是可行的
但是如果我去掉代码中的 "CMD /C" 直接使用"%CMDFILE% %* /ADD"却不行,根本没把参数传递回去,为什么?
测试环境是XP下的CMD
|
|
2006-10-21 02:50 |
|
|
不得不爱
超级版主
         我爱DOS
积分 5310
发帖 2044
注册 2005-9-26 来自 四川南充
状态 离线
|
『第
2 楼』:
@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
|

|
|
2006-10-21 03:13 |
|
|
0401
中级用户
   带走
积分 435
发帖 88
注册 2005-9-24
状态 离线
|
『第
3 楼』:
好办法!以前都没注意到GOTO还可以带参数过去...
多谢指点~问题解决了
再问下:使用CALL为何不能达到同样的效果?
|
|
2006-10-21 03:32 |
|
|
9527
银牌会员
     努力做坏人
积分 1185
发帖 438
注册 2006-8-28 来自 北京
状态 离线
|
『第
4 楼』:
GOTO 能带参数???我怎么不知道呢?还有qwe1234567版主我觉得GOTO:TEST %1 %2这条语句 应该 GOTO TEST %1 %2这样才对吧,唉,GOTO能带参数???第一次听说,呵呵.........
|

我今后在论坛的目标就是做个超级坏人!!! |
|
2006-10-21 03:38 |
|
|
0401
中级用户
   带走
积分 435
发帖 88
注册 2005-9-24
状态 离线
|
『第
5 楼』:
8好意思,小弟才疏学浅,GOTO能带参数只是我的理解,可能我理解的有点出入,但至少GOTO:TEST %1 %2是可行的,至于带不带冒号又有何关系.有心帮忙的话回答下我的问题吧.
再次谢谢 qwe1234567
|
|
2006-10-21 03:47 |
|
|
不得不爱
超级版主
         我爱DOS
积分 5310
发帖 2044
注册 2005-9-26 来自 四川南充
状态 离线
|
『第
6 楼』:
GOTO 是不带参数的,带不带冒号都一样
|

|
|
2006-10-21 04:25 |
|
|
0401
中级用户
   带走
积分 435
发帖 88
注册 2005-9-24
状态 离线
|
『第
7 楼』:
我错了~~~确实是不带参数,理解错了,因为老大的这句GOTO:TEST %1 %2我才这么认为的,现在试试没有%1 %2一样行.但是有的环境下我想使用CALL呀,可是还没人帮我解答这个疑问,自己回去再想想先~
|
|
2006-10-21 23:33 |
|