关于批处理if errorlevel 1

第一,首先看下面的这个程序:@echooffxcopyappData.xlse:\iferrorlevel5gotosug5iferrorlevel4gotosug4if... 第一,首先看下面的这个程序:
@echo off
xcopy appData.xls e:\
if errorlevel 5 goto sug5
if errorlevel 4 goto sug4
if errorlevel 2 goto sug2
if errorlevel 1 goto sug1
if errorlevel 0 goto sug0

:sug5
echo 拷贝过程中写盘错误
echo 程序将退出
goto end

:sug4
echo 预制错误阻止文件拷贝操作
echo 程序将退出
goto end

:sug2
echo 用户通过ctrl-c终止拷贝操作
echo 程序将退出
goto end

:sug1
echo 未找到拷贝文件
echo 程序将退出
goto end

:sug0
echo 拷贝文件成功!
goto end

:end
echo 2秒后退出
ping -n 2 127.0.0.1>nul
pause
exit

执行该批处理时,如果appData.xls 和它放在同一目录显示是:拷贝文件成功!
若是在其他地方,都会显示:

也就是if errorlevel 4 goto sug4这个判断语句
系统说明不是这样吗?
xcopy
0 成功拷贝文件 1 未找到拷贝文件 2 用户通过ctrl-c中止拷贝操作 4 预置错误阻止文件拷贝操作 5 拷贝过程中写盘错误

在此处有疑问??,

第二,同样的语句做了以下修改
@echo off
setlocal enabledelayedexpansion
xcopy appData.xls e:\
if %errorlevel%==%5%(
echo 拷贝过程中写盘错误
goto end
)

if %errorlevel%==%4%(
echo 预制错误阻止文件拷贝操作
goto end


if %errorlevel%==%2%(
echo 用户通过ctrl-c终止拷贝操作
goto end


if %errorlevel%==%1%(
echo 未找到拷贝文件
goto end


if %errorlevel%==%0%(
echo 成功拷贝文件
goto end


:end
echo 3秒后将退出
ping -n 3 127.0.0.1>nul
pause
exit
自以为没问题,但是运行时却是一闪而过,实在是想不通哪里出错了,哎,请高人帮忙指点一下吧!
@ 巧虎星期六:
如您所说,第一段改成:if %errorlevel%==5 执行还是那样子显示,看样子系统判断后给的返回值 对应的解释与实际矛盾,明明应当是显示未找到拷贝文件,却是显示预制错误阻止文件拷贝操作
第二段改成:if %errorlevel%==5 这样执行还是闪退,后来我改成这样:
if errorlevel==5 echo 拷贝过程中写盘错误&goto end
执行结果和1是一样的,这()不知道哪里用的不对了,比较郁闷
展开
 我来答
巧虎星期六
推荐于2016-03-03 · TA获得超过127个赞
知道小有建树答主
回答量:158
采纳率:0%
帮助的人:138万
展开全部
当使用if errorlevel 值 cmmand 句式时,它的含义是:如果返回的错误码值大于或等于值 的时候,将执行cmmand
操作;
当使用if %errorlevel%==值 cmmand 句式时,它含义是:如果返回的错误码值等于值 的时候,将执行cmmand操作。

第二段批处理当中,数字左右不要加%,%a%指的都是变量, %1%,批处理认为是一种错误的表达式,所以一闪退出
追问
@巧虎星期六 :字数有点多,写不下,写在评论里了。。。
追答
第一段,脚本没有错,之所以会出现errorlevel 5和4的结果,一是因为脚本是顺序执行模式,二是因为“if errorlevel 值”这种写法的问题,我上面已经回复了。
【当使用if errorlevel 值 cmmand 句式时,它的含义是:如果返回的错误码值大于或等于值 的时候,将执行cmmand操作;】

第二段脚本,去掉setlocal enabledelayedexpansion这句话,去掉数值左右的百分号
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式