dos 批处理命令ERRORLEVEL问题

@echooffifexist c:\ gotoyes IFnotERRORLEVEL1gotono pause&exit... @echo offif exist  c:\  goto yes IF not ERRORLEVEL 1 goto no pause&exit:yes echo 恭喜你,你中奖了!~  %errorlevel%pause&exit:no echo 很抱歉,请你重试!~ %errorlevel%pause&exit@echo offif exist  a:\  goto yes IF not ERRORLEVEL 1 goto no pause&exit:yes echo 恭喜你,你中奖了!~  %errorlevel%pause&exit:no echo 很抱歉,请你重试!~ %errorlevel%pause&exit问题: 为什么我的  IF not ERRORLEVEL 1  不管路径对不对他都是0! 再次提醒 ERRORLEVEL  0是正确 1是错误 那么为什么正确不显示goto no  这段 而错误显示了 goto no这段  展开
 我来答
_AlwaysGo
2012-03-11 · TA获得超过184个赞
知道小有建树答主
回答量:145
采纳率:0%
帮助的人:81.8万
展开全部
因为errorlevel 用于测试上一条DOS命令的执行情况
也就是你所写的if exist c:\ goto yes
换句话说 如果C盘存在 跳转至 yes 如果不存在 不跳转
而 errorlevel 用于测试此句的执行情况
则永远都会返回true(0)
友万科技
2025-03-24 广告
Stata系列软件全国授权代理——北京友万。北京友万信息科技有限公司,总部设在北京市昌平科技园区,是一家专注于引进国内外软硬件产品的中关村高新技术企业。公司拥有多项自主研发的数据平台,依托自身经验丰富的技术团队资源,为不同领域的客户提供全面... 点击进入详情页
本回答由友万科技提供
sudoku52
2012-03-10 · TA获得超过7万个赞
知道大有可为答主
回答量:1.2万
采纳率:82%
帮助的人:5169万
展开全部
因为无论c:\在不在if语句都能执行正确,所有%errorlevel%都是0.
你想实现这个目的把第一句改以下就可以

@echo off
cd /d c:\
IF not ERRORLEVEL 1 goto no
pause&exit
:yes echo 恭喜你,你中奖了!~ %errorlevel%
pause&exit
:no echo 很抱歉,请你重试!~ %errorlevel%
pause&exit
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式