![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-12 11:25 |
共 47,811 主题排行 / 349,897 发帖 / 今日 0 篇 / 48,256 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » [求助]怎么理解IF ERRORLEVEL 13 IF NOT ERRORLEVEL 14 SET wat=1 ? |
| 可打印版本 963 / 3 |
| 第1楼 wmt333 | 发表于 2010-04-14 22:36 |
| 初级用户 发帖 23 积分 52 | |
|
[求助]怎么理解IF ERRORLEVEL 13 IF NOT ERRORLEVEL 14 SET wat=1 ? IF ERRORLEVEL 13 IF NOT ERRORLEVEL 14 SET wat=1
IF ERRORLEVEL 2 IF NOT ERRORLEVEL 3 SET SM=Y 最近在看一些批处理代码时看到如上所示的代码,在网上找了一下资料可惜没找到,有高手可以指点一下吗? wait 3 set wat= IF ERRORLEVEL 13 IF NOT ERRORLEVEL 14 SET wat=1 IF %wat%#==# GOTO ext 这段批处理怎么理解? |
|
| 第2楼 HAT | 发表于 2010-04-15 00:07 |
| 版主 发帖 5,017 积分 9,023 | |
|
这个代码的作者也没有真正搞清楚语法,所以就乱写一气。
|
|
| 第3楼 qzwqzw | 发表于 2010-04-15 08:31 |
| 银牌会员 发帖 636 积分 2,343 | |
|
感觉最近版主火气有点大
奉劝一句——多注意身体 IF ERRORLEVEL 13 IF NOT ERRORLEVEL 14 SET wat=1 IF ERRORLEVEL 2 IF NOT ERRORLEVEL 3 SET SM=Y 类似这样的写法 是古代(2000年以前)批处理的写法 它主要适用于MS-DOS 1.0-7.10等DOS操作系统下 当然在如今Windows的CMD下或者COMMAND下也是有效的 if errorlevel是指状态返回值大于等于某个数时如何如何 if not errorlevel就是不大于等于(就是小于)某个数时如何如何 这里的errorlevel既当主语用又当谓语用 作为主语它是指一个程序的状态返回值(也叫错误代码) 作为谓语它是值大于等于后面的一个数值 根据你第二段代码示例 它是指如果wait程序返回的错误代码 既大于等于13又不大于等于14(就是等于13)时 将变量wat赋值为1 然后就不执行后面的GOTO ext 至于13的意义这取决于你的程序wait自己的定义 我猜它是指用户按了某个键终止了wait程序时 返回这个按键的扫描码(回车键的扫描码就是13) |
|
| 第4楼 wmt333 | 发表于 2010-04-15 20:28 |
| 初级用户 发帖 23 积分 52 | |
|
谢谢qzwqzw的答案,结合程序代码,现在看懂了。TKS!
|
|
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |