中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-08-04 19:39
48,038 主题排行 / 350,123 发帖 / 今日 0 篇 / 48,251 会员排行
DOS批处理 & 脚本技术(批处理室) » IF中能嵌套CALL命令?
可打印版本  927 / 6
第1楼 linmilin 发表于 2007-05-31 11:24
初级用户 发帖 23 积分 57
IF中能嵌套CALL命令?
IF中嵌套CALL命令,为何CALL命令不能得到正确执行。请高手指教。谢谢!
问题如下:



[ Last edited by linmilin on 2007-5-31 at 09:33 PM ]
第2楼 stornager 发表于 2007-05-31 15:26
中级用户 发帖 131 积分 328
call :!rade! 用法错误,应该是call:rade_loop
set /p rade=renamedeltreeexit应该改为set rade=renamedeltreeexit 吧

[ Last edited by stornager on 2007-5-31 at 03:34 PM ]
第3楼 linmilin 发表于 2007-05-31 15:53
初级用户 发帖 23 积分 57
Originally posted by stornager at 2007-5-31 03:26 PM:
call :!rade! 用法错误,应该是call:rade_loop
set /p rade=renamedeltreeexit应该改为set rade=renamedeltreeexit 吧

[ Last edited by stornager on 2007-5-31 at 03:34 PM ]


第一:
set /p rade=renamedeltreeexit
这一句是用于与用户进行互动,可以让用户选择条件。

第二:
:rade_loop
此循环是当用户选择的条件非程序设置的条件时进行跳转的。
CALL调用的是以下部分程序:
call :!rade! 2>nul || call :p
pause>nul
goto :eof
:p
echo error - select the string!
goto :rade_loop
goto :eof
:e
echo this is exit!
goto :eof

:r
echo this is rename!
goto :eof
第4楼 wudixin96 发表于 2007-05-31 16:06
银牌会员 发帖 931 积分 1,928


在偶运行看来。就call :%rade%出问题。个人认为没必要启用延迟
第5楼 linmilin 发表于 2007-05-31 21:20
初级用户 发帖 23 积分 57
Originally posted by wudixin96 at 2007-5-31 04:06 PM:
第6楼 wudixin96 发表于 2007-05-31 22:02
银牌会员 发帖 931 积分 1,928
call :!rade! 2>nul || call :p

第一call后, errorlevel变量变成1,即失败。所以会调用第二个call
第7楼 linmilin 发表于 2007-06-01 08:56
初级用户 发帖 23 积分 57
确实是这样,但就是找不出为什么会导致这样的问题。
从程序上说,程序是没问题的。但就是得不到想要的结果。
请不吝赐教。
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023