[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文本处理] IF [NOT] ERRORLEVEL number command能这样写么?

if /?有如下的语法格式,我一直弄不懂,今天也有了心得,与大家分享


IF [NOT] ERRORLEVEL number command


===================
@echo off
net user>nul
IF ERRORLEVEL 0 (echo net user 执行成功了!) else echo net user 执行失败了!
pause>nul
结果是执行成功
===================
@echo off
net user11111>nul
IF ERRORLEVEL 0 (echo net user 执行成功了!) else echo net user 执行失败了!
pause>nul
结果也是执行成功,你是不是和我一样感到不可思议!!!!
================================
================================
再来看正确的用法
IF [NOT] %ERRORLEVEL%== number command


@echo off
net user>nul
IF %ERRORLEVEL%==0 (echo net user 执行成功了!) else (echo net user 执行失败了!)
pause>nul





@echo off
net user22222>nul
IF %ERRORLEVEL%==0 (echo net user 执行成功了!) else (echo net user 执行失败了!)
pause>nul



是不是达到目的了?

IF ERRORLEVEL number command
这句是其实简写,它实际等于
IF %ERRORLEVEL% geq number command
所以为什么错误码都要从上往下判断

你的代码里面执行是错误的,所以ERRORLEVEL为1,后面判断是否大于0,所以无论如何都输出执行成功

新手常犯的错误,没有特殊情况的话还是用==来判断的好

TOP

多谢了,我以为我理解了,原来是这样的

TOP

返回列表