我们都知道if是命令行下的一个条件判断语句,ERRORLEVEL是它的一个参数,翻译过来就是“错误返回码”的意思,它的作用是判断前一条命令的错误返回值,然后和定义的字符值进行比较,再决定进行什么动作

今天远程一个客户,发现他的服务器会不定时自动断开网络,导致客户端连接不了服务端,但是重启服务以后又恢复正常,初步判断可能是由于某个系统服务与winpacp有冲突,建议用户恢复操作系统,他想等晚上再开始操作,今天就只好一直运行个ping,发现timed out就手动重启服务。我记得if可以利用程序的返回值作为判断,就帮他写了这个脚本:

复制代码代码如下:

@echo off
: p
ping 61.152.XX.XX
IF ERRORLEVEL 1 goto aa
IF ERRORLEVEL 0 goto bb
:aa
echo 正在重启软件服务...
net stop MSSQLSERVER
net start MSSQLSERVER
goto p
:bb
echo 继续ping中。。。
goto p

这段命令的作用是,ping 61.152.XX.XX这个IP,如果ping不通则重启mssql服务,然后继续ping,如果能够ping通,还是继续ping...

我们都知道if是命令行下的一个条件判断语句,ERRORLEVEL是它的一个参数,翻译过来就是“错误返回码”的意思,它的作用是判断前一条命令的错误返回值,然后和定义的字符值进行比较,再决定进行什么动作。
格式是这样:

if ERRORLEVEL nubmer commend
例:if ERRORLEVEL 1 echo 返回值等于1

那么大家就要问了,我怎么获取到前一个命令的返回值呢?
方法很简单,拿ping来说,我们先运行一个ping 127.0.0.1
运行结果是Reply from 127.0.0.1: bytes=32 time<1ms TTL=128
这时候我们输入,echo %errorlevel%,就可以看到返回值是0,
然后我们在ping一个不存在的ip,比如192.192.192.192
ping命令显示 Request timed out.。
ok,我们在用echo %errorlevel%查一下返回值是多少。
现在变成了1。

你也可以用这个方法来查询其他命令的返回值,比如copy、dir等等。
当然if ERRORLEVEL对数值的比较方法不仅仅限于等于。在微软的帮助中我们可以看到:

IF %ERRORLEVEL% LEQ 1 goto okay

这里的LEQ表示“小于等于”,全部的比较参数如下:
EQU - 等于
NEQ - 不等于
LSS - 小于
LEQ - 小于或等于
GTR - 大于
GEQ - 大于或等于

如有错误,感谢指正。

IF-ERRORLEVEL

建立TEST4.BAT,内容如下: 
@ECHO OFF  
XCOPY C:\AUTOEXEC.BAT D:\ 
IF ERRORLEVEL 1 ECHO 文件拷贝失败  
IF ERRORLEVEL 0 ECHO 成功拷贝文件  
然后执行文件: 
C:\>TEST4 
如果文件拷贝成功,屏幕就会显示“成功拷贝文件”,否则就会显示“文件拷贝失败”。  
IF ERRORLEVEL 是用来测试它的上一个DOS命令的返回值的,注意只是上一个命令的返回值,而且返回值必须依照从大到小次序顺序判断。 
因此下面的批处理文件是错误的: 
@ECHO OFF  
XCOPY C:\AUTOEXEC.BAT D:\  
IF ERRORLEVEL 0 ECHO 成功拷贝文件  
IF ERRORLEVEL 1 ECHO 未找到拷贝文件  
IF ERRORLEVEL 2 ECHO 用户通过ctrl-c中止拷贝操作  
IF ERRORLEVEL 3 ECHO 预置错误阻止文件拷贝操作  
IF ERRORLEVEL 4 ECHO 拷贝过程中写盘错误  
无论拷贝是否成功,后面的:  
未找到拷贝文件  
用户通过ctrl-c中止拷贝操作  
预置错误阻止文件拷贝操作  
拷贝过程中写盘错误 
都将显示出来。  
以下就是几个常用命令的返回值及其代表的意义:  
backup  
0 备份成功  
1 未找到备份文件  
2 文件共享冲突阻止备份完成  
3 用户用ctrl-c中止备份  
4 由于致命的错误使备份操作中止  
diskcomp  
0 盘比较相同  
1 盘比较不同  
2 用户通过ctrl-c中止比较操作  
3 由于致命的错误使比较操作中止  
4 预置错误中止比较  
diskcopy  
0 盘拷贝操作成功  
1 非致命盘读/写错  
2 用户通过ctrl-c结束拷贝操作  
3 因致命的处理错误使盘拷贝中止  
4 预置错误阻止拷贝操作  
format  
0 格式化成功  
3 用户通过ctrl-c中止格式化处理  
4 因致命的处理错误使格式化中止  
5 在提示“proceed with format(y/n)?”下用户键入n结束  
xcopy  
0 成功拷贝文件  
1 未找到拷贝文件  
2 用户通过ctrl-c中止拷贝操作  
4 预置错误阻止文件拷贝操作  
5 拷贝过程中写盘错误

您可能感兴趣的文章:

  • cmd if条件 条件判断
  • dos if 条件判断
  • bat批处理 if 命令示例详解
  • bat If 命令常用判断介绍
  • bat中errorlevel与%errorlevel%的区别
  • dos中一些常用命令的errorlevel返回值

IF-ERRORLEVEL使用方法相关推荐

  1. window中常用的命令

    window中常用的命令 1 windows中常用的命令: 2 批处理文件的@echo off 命令 3 bat的变量与命令set的用法 4 windows批处理语法 1 windows中常用的命令: ...

  2. .bat批处理命令的介绍

    HUC = = D组 http://www.cnhonkerarmy.com/ 63707869 =====================================开始============ ...

  3. Windows bat 编程基本语法

    windows批处理语法 写批处理文件,除了了解基本语法外,你还需要熟悉常用的windows命令,那就先看看这篇文章: windows常用命令 #重要说明 文件及目录路径:要使用反斜杠'**\**', ...

  4. Windows批处理文件*.bat

    Windows批处理文件 [ 一.什么是批处理 ] 批处理(Batch),也称为批处理脚本.顾名思义,批处理就是对某对象进行批量的处理.批处理文件的扩展名为 bat . 目前比较常见 的批处理包含两类 ...

  5. window的dos命令学习笔记 七

    文章目录 一.dos历史学习笔记(后期整合到这里,我想能学到这里的应该不多了,嘿嘿,加油) 二.执行状态返回值(`%errorlevel%`,和shell中`$?`相似): 三.视窗 1.color ...

  6. 批处理常用命令总结和WindowsXP下运行命令使用大全及优化

    关于批处理以及批处理常用命令的总结 [ 一.什么是批处理 ] 批处理文件图标 批处理(Batch),也称为批处理脚本.顾名思义,批处理就是对某对象进行批量的处理.批处理文件的扩展名为 bat . 目前 ...

  7. 关于批处理以及批处理常用命令的总结

    关于批处理以及批处理常用命令的总结 [ 一.什么是批处理 ] 批处理文件图标 批处理(Batch),也称为批处理脚本.顾名思义,批处理就是对某对象进行批量的处理.批处理文件的扩展名为 bat . 目前 ...

  8. DOS常用命令与批处理使用大全

    一.DOS命令使用规则 1.直接输入"help",运行,就可以列出所有命令及说明. 2.可以使用通配符(? 和 *),?表通配一个字符,*表通配任意字符 *.后缀 指定要查看后缀的 ...

  9. 在 Oracle Enterprise Linux 和 iSCSI 上构建您自己的 Oracle RAC 11g 集群

    作者:Jeffrey Hunter 了解如何以低于 2,700 美元的费用在 Oracle Enterprise Linux 上安装并配置 Oracle RAC 11g 第 2 版开发集群. 本指南中 ...

  10. Java面试题大全2021版

    一.Java 基础 JDK 和 JRE 有什么区别? JDK:Java Development Kit 的简称,java 开发工具包,提供了 java 的开发环境和运行环境. JRE:Java Run ...

最新文章

  1. [BI项目记]-TFS Express备份和恢复
  2. 测试人员的独特价值体会
  3. 简述Java内存模型的由来、概念及语义
  4. 使用PaddleFluid和TensorFlow训练RNN语言模型
  5. Java语法糖之foreach
  6. Jerry制作的软件工程里Design for Change的培训材料
  7. 生产者消费者模型的学习
  8. 关于Jakarta EE与MicroProfile的创新和关系的提案
  9. FC网络学习笔记02 -网络配置方法
  10. 【华为云技术分享】【Python算法】分类与预测——Python随机森林
  11. 拥抱开源四年的 .NET,现在怎么样了?
  12. J1939入门(一)
  13. vue.js安装步骤教程
  14. Android Toast使用的简单小结
  15. 使用清华镜像快速下载TensorFlow各版本及已安装版本查看
  16. 股票杠杆哪个平台好?具备的资质是怎么样的?
  17. 证明婚内出轨的几种证据
  18. (每日更新)《虚拟现实VR资讯》(Yanlz+Unity+SteamVR+云技术+5G+AI=VR云游戏=云渲染+人机交互+立钻哥哥+==)
  19. thinkphp5实现文件下载
  20. SWAP函数的几种写法

热门文章

  1. matlab 万年历,matlab时钟万年历 matlab时钟万年历(附word说明文档): 程序主要 联合开发网 - pudn.com...
  2. 机箱硬盘指示灯不亮_安钛克DF600 FLUX机箱:FLUX平台第一款机箱,为全民电竞热“降温”...
  3. linux nat冲突,Linux系统下的NAT及防火墙的混合应用
  4. NS3使用过程中重要内容整理
  5. Ubuntu16.04安装WPS
  6. 交换机端口故障问题解决方法
  7. [渝粤教育] 西南科技大学 单片机原理与应用 在线考试复习资料(2)
  8. 【渝粤题库】陕西师范大学200511 美国文学
  9. SI4432射频芯片方案物联网无线通信模块数传的典型应用
  10. mysql function 表名作为参数_mysql 常用的分组聚合函数