
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这段
展开
2个回答
展开全部
因为errorlevel 用于测试上一条DOS命令的执行情况
也就是你所写的if exist c:\ goto yes
换句话说 如果C盘存在 跳转至 yes 如果不存在 不跳转
而 errorlevel 用于测试此句的执行情况
则永远都会返回true(0)
也就是你所写的if exist c:\ goto yes
换句话说 如果C盘存在 跳转至 yes 如果不存在 不跳转
而 errorlevel 用于测试此句的执行情况
则永远都会返回true(0)

2025-03-24 广告
Stata系列软件全国授权代理——北京友万。北京友万信息科技有限公司,总部设在北京市昌平科技园区,是一家专注于引进国内外软硬件产品的中关村高新技术企业。公司拥有多项自主研发的数据平台,依托自身经验丰富的技术团队资源,为不同领域的客户提供全面...
点击进入详情页
本回答由友万科技提供
展开全部
因为无论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
你想实现这个目的把第一句改以下就可以
@echo off
cd /d c:\
IF not ERRORLEVEL 1 goto no
pause&exit
:yes echo 恭喜你,你中奖了!~ %errorlevel%
pause&exit
:no echo 很抱歉,请你重试!~ %errorlevel%
pause&exit
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询