![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-11 08:00 |
共 47,811 主题排行 / 349,897 发帖 / 今日 0 篇 / 48,256 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » 关于条件变量问题 |
| 可打印版本 792 / 7 |
| 第1楼 ZJHJ | 发表于 2009-02-08 14:29 |
| 高级用户 发帖 374 积分 609 | |
|
关于条件变量问题 如果 ndxz 有数值,但是不等于2 , %sos% 有数值
if "%ndxz%"=="2" if %sos% GTR %abc% call:dynq 照理 以上命令不会运行。但是 我发现,当%abc%有值时,才是这样。 但当%abc%没有值时,也就是说%abc%不存在时,为什么会关闭窗口??? [ Last edited by ZJHJ on 2009-2-8 at 14:32 ] |
|
| 第2楼 netbenton | 发表于 2009-02-08 14:45 |
| 银牌会员 发帖 752 积分 1,916 来自 广西 | |
|
if %sos% GTR %abc%
我想应该是为空时进行了这样的比较 %sos% cmp %abc% 即把变量本身当成了字符串,因为if xx gtr xx是允许字符串进行比较的。 试一下这样就知道了。 echo %abc% 如果abc 没有定义时显示: %abc% |
|
| 第3楼 ZJHJ | 发表于 2009-02-08 22:29 |
| 高级用户 发帖 374 积分 609 | |
|
不会 call:dynq ,这点我知道,对:dynq 不调用。
我的意思是说: 如果 set ndxz=1 sos=** abc没有值 if "%ndxz%"=="2" if %sos% GTR %abc% call:dynq ............ ........... 那么 if %sos% GTR %abc% call:dynq这句命令应该视为没有。 但是在运行中cmd.exe却退出关闭了.这是为什么???/ 如果 set ndxz=2 abc没有值, 这还好理解些. [ Last edited by ZJHJ on 2009-2-8 at 22:33 ] |
|
| 第4楼 netbenton | 发表于 2009-02-08 23:42 |
| 银牌会员 发帖 752 积分 1,916 来自 广西 | |
如果 set ndxz=1 sos=** abc没有值 测试时不是你说的结果。 而是: 如果 ndxz=1,sos=**, abc空时 if "%ndxz%"=="2" if %sos% GTR %abc% call:dynq 后面的call:dynq 并不会执行 |
|
| 第5楼 不得不爱 | 发表于 2009-02-09 00:20 |
| 超级版主 发帖 2,044 积分 5,310 来自 四川南充 | |
|
当%abc%为空时会出现命令错误,然后跳出批处理
要防止出现错误应该是: if "%ndxz%"=="2" if 1%sos% GTR 1%abc% call:dynq 或者给abc个初值: set abc=0 ......... if "%ndxz%"=="2" if %sos% GTR %abc% call:dynq |
|
| 第6楼 netbenton | 发表于 2009-02-09 00:44 |
| 银牌会员 发帖 752 积分 1,916 来自 广西 | |
|
是哦,
我原是在命令行试的,没有在BAT里试。 真的是出错了! 只有这样才不会出错 if %a%0 gtr %b%0 echo aa 又学到了。。。 |
|
| 第7楼 ZJHJ | 发表于 2009-02-09 10:51 |
| 高级用户 发帖 374 积分 609 | |
Originally posted by 不得不爱 at 2009-2-9 00:20: 我很费劲才找到这个问题,没有办法只好设置成 set abc=0 |
|
| 第8楼 zhengqian529 | 发表于 2009-02-09 15:24 |
| 初级用户 发帖 93 积分 100 来自 湖南 | |
|
学习了,以前看到过判断参数是否为空时使用%1.==.这样的判断,也是和这个一个原理
if %1.==.&pause&cls |
|
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |