中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-08-12 10:46
47,811 主题排行 / 349,897 发帖 / 今日 0 篇 / 48,256 会员排行
DOS批处理 & 脚本技术(批处理室) » 请教 GOTO %1 出错后怎么样处理?
可打印版本  1,009 / 7
第1楼 Lin7uan 发表于 2010-04-15 23:26
初级用户 发帖 32 积分 38
请教 GOTO %1 出错后怎么样处理?
:0000 开始分析%1
IF "%1"=="" GOTO NO1
GOTO %1 2>NUL
REM ECHO %ERRORLEVEL%
:-请问一下怎么样在GOTO出错后再GOTO其它标签?
第2楼 Hanyeguxing 发表于 2010-04-16 00:28
银牌会员 发帖 897 积分 1,039 来自 在地狱中仰望天堂
为什么要让 goto 跳错误的标签呢?
完全可以在 goto 之前就判断。
你想让批处理带参数运行,并要求这个批处理能检查参数是否为空,错误参数提示?
第3楼 Hanyeguxing 发表于 2010-04-16 00:34
银牌会员 发帖 897 积分 1,039 来自 在地狱中仰望天堂
给你看一个示例:

双击批处理文件时,批处理执行内部N个(例如4个)功能。
双击批处理文件运行完成后,批处理窗口自动关闭。
在 CMD 控制台直接执行(不含参数)此批处理时,批处理显示选择菜单。
在 CMD 控制台执行此批处理后,CMD 控制台不关闭,并等待下一命令。
在 CMD 控制台对此批处理带参数执行,参数 Help 显示帮助信息。
在 CMD 控制台对此批处理带参数执行,参数 All 执行内部N个(例如4个)功能。
在 CMD 控制台对此批处理带参数执行,参数 About 显示版权及版本信息。
在 CMD 控制台对此批处理带组合参数执行,每个参数对应不同内部功能。
参数要求忽略大小写,参数可以是单独字符,也可以是单词,前面可以是-或/。
当参数错误时,返回错误信息:“没有 -m 这个参数!”。
批处理每次运行完成,都显示返回标准信息:“操作已完成!”。

第4楼 Lin7uan 发表于 2010-04-16 01:58
初级用户 发帖 32 积分 38
我的思路是,在CMD中输入
命令名 参数1
执行步骤如下
1,检测参数1是否存在?如果存在则GOTO:参数1
2,如果参数1不存在,则GOTO:统一处理处

3楼的处理方法确实高明,很经典,学习了!!
问题是我的模块在不断增加中...
如果每个都要预先判断,程序太长,也很麻烦.
如果
GOTO %1 || GOTO 01
能成功就好了,可GOTO失败一次就罢工了...
第5楼 Lin7uan 发表于 2010-04-16 23:31
初级用户 发帖 32 积分 38
VERY GOOD
哈哈哈哈!!!!
功夫不负有心人,终于摸出了解决方法:

GOTO %1 || CALL %0 统一处理处
第6楼 Lin7uan 发表于 2010-04-17 00:17
初级用户 发帖 32 积分 38
不行啊,又有新问题了!
GOTO %1 2>NUL||call %0 ERR %1
运行之后没有了提示符,即“C:\>”
再用PROMPT $P$G都不行了
第7楼 Lin7uan 发表于 2010-04-17 01:24
初级用户 发帖 32 积分 38
::试过很多次
GOTO %1 2>NUL|| ECHO=管道后面的是内部命令执行后就有提示符,否则没有!

::这个批处理在外部直接被CALL后也没提示符,但在其它批处理中CALL后则有提示符!真是奇怪。
第8楼 Hanyeguxing 发表于 2010-04-17 01:32
银牌会员 发帖 897 积分 1,039 来自 在地狱中仰望天堂
Originally posted by Hanyeguxing at 2010-4-16 00:28:
为什么要让 goto 跳错误的标签呢?
完全可以在 goto 之前就判断。
你想让批处理带参数运行,并要求这个批处理能检查参数是否为空,错误参数提示?


我已经说过了!
例如
或者

[ Last edited by Hanyeguxing on 2010-4-17 at 01:38 ]
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023