关于bat脚本中的命令状态码相关的%errorlevel%变量问题

bat脚本中常用%errorlevel%表达上一条命令的返回值,即命令执行状态码、也称命令退出码

一般上一条命令的执行结果返回的值只有两种,0和非0 (如常见的1,2,4,5,9009等等),0一般会被视为成功,非0为失败或者异常

对于9009,在cmd中经常会发生输入的命令错误,或者不存在的命令,这时就会返回9009这种状态码,

1、对于%errorlevel%变量,一般都是与if结合使用较多,如下:

dir qq5201351.txt
if %errorlevel% ==0 (del /q/f qq5201351.txt)

2、关于自己写bat脚本时,可以通过exit命令的方式定义%errorlevel%命令退出状态码,如下:

echo "test var errorlevel"
exit /b 1

注:exit需要加上/b选项,/b是指定要退出当前批处理脚本而不是 CMD.EXE。如果从一个批处理脚本外执行,则会退出 CMD.EXE

注:这样对于ext /b 1 执行后,就会退出当前批处理脚本,即使后面有内容也不会继续执行了!

不过笔者在测试有些命令时,对于这个变量也会出现异常(目前原因未知)

C:\Users\5201351\Desktop>echo 123
123
C:\Users\5201351\Desktop>echo %errorlevel%
0
C:\Users\5201351\Desktop>abcdefg
'abcdefg' 不是内部或外部命令,也不是可运行的程序
或批处理文件。
C:\Users\5201351\Desktop>echo %errorlevel%
9009
C:\Users\5201351\Desktop>echo 123456
123456
C:\Users\5201351\Desktop>echo %errorlevel%
9009
C:\Users\5201351\Desktop>

到此这篇关于关于bat脚本中的命令状态码相关的%errorlevel%变量的文章就介绍到这了,更多相关bat脚本%errorlevel%变量内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • bat中errorlevel与%errorlevel%的区别

    他们都是判断上个命令的返回值.当使用if errorlevel 值 cmmand 句式时,它的含义是:如果返回的错误码值大于或等于值 的时候,将执行cmmand 操作: 当使用if %errorlevel%==值 cmmand 句式时,它含义是:如果返回的错误码值等于值 的时候,将执行cmmand操作. 一般上一条命令的执行结果返回的值只有两个,"成功"用0 表示 "失败"用 1 表示,实际上,errorlevel 返回值可以在0~255 之间, 例如xcopy 默

  • 基于shell脚本中cd命令无效的解决方法

    在学习的时候,经常要切换到固定的文件夹,于是写了个shell脚本用cd命令切换却发现目录切换不了. 代码如下: #! /bin/bash # c.sh cd /mnt/hgfs/vmshare pwd 解释:执行的时候是./c.sh来执行的,这样执行的话终端会产生一个子shell(类似于C语言调用函数),子shell去执行我的脚本,在子shell中已经切换了目录了,但是子shell一旦执行完,马上退出,子shell中的变量和操作全部都收回.回到终端根本就看不到这个过程的变化. 验证解释: #!

  • Shell脚本中多命令逻辑执行顺序的方法详解

    Linux中可以使用分号";".双and号"&&"和双竖线"||"来连接多个命令.单"&"符号也算命令连接符号,只不过它是将其前面的命令放入后台执行,所以可以变相地实现命令并行执行. 1.分号";" command1 ; command2 命令之间没有逻辑关系.分号连接的命令会按照顺序从前向后依次执行,但分号两端的命令之间没有任何逻辑关系,所有写出来的命令最终都会被执行,即使分号前面

  • Python中获取网页状态码的两个方法

    第一种是用urllib模块,下面是例示代码: 复制代码 代码如下: import urllib status=urllib.urlopen("http://www.jb51.net").code print status 第二章是用requests模块,下面是例示代码: 复制代码 代码如下: import requests code=requests.get("http://www.jb51.net").status_code print code

  • 深入剖析Ruby设计模式编程中对命令模式的相关使用

    命令模式是对象行为型使用率比较高的设计模式,别名:Action(动作),Transaction(事务) 意图: 将一个请求封装为一个对象,从而使你可对不同的请求进行参数化:对请求排队或记录请求日志,以及支持可取消的操作 这里所谓的"不同的请求"也既意味着请求可能发生的变化,是一个可能扩展的功能点. 动机: 方便扩展 结构: 协作说明:    参与角色:     Command 声明一个接口以用来实现某个操作.     ConcreteCommand 将动作与Reciver对外绑定,通过

  • Bat脚本处理ftp超强案例分析

    前言: 公司有几百台windows服务器,每次程序更新,如果是一台台拷数据,只怕安排十个人,一天都不一定做得完,所以就必须研究个全自动更新方案来,于是就想到了FTP,做个主FTP站,在几百台客户机上启动BAT脚本,每30秒检测一次,如果主站有更新程序,就自动下载更新,几分钟内,上400台windows服务器,都可以全自动更新程序完毕,相当实用,现把当初研究BAT的脚本思路贴出来,希望对大批量运维人员一个方向.当然,批量更新服务器,每个公司有它自己的解决办法,这个BAT的方式不是最优的,可以用sh

  • windows下定时利用bat脚本实现ftp上传下载

    前言: 工作中可能会遇到以下情况,利用windows作为中转,来实现两台linux服务器的文件传输. 实现步骤: 1.FTP上传和下载的bat脚本. 脚本分为两部分:可执行bat脚本和ftp命令文件: 可执行bat脚本: @echo off ftp -s:D:\ftp\ftp.txt ftp命令ftp.txt: open 192.168.1.166 ftp-user passwd prompt off lcd D:\ftp cd /home/myftp mget * close open 10.

  • http200、301、304等状态码详解

    当浏览者访问一个网页时,浏览者的浏览器会向网页所在服务器发出请求.当浏览器接收并显示网页前,此网页所在的服务器会返回一个包含HTTP状态码的信息头(server header)用以响应浏览器的请求 HTTP状态码的英文为HTTP Status Code. 下面是常见的HTTP状态码: •200 - 请求成功 •301 - 资源(网页等)被永久转移到其它URL •404 - 请求的资源(网页等)不存在 •500 - 内部服务器错误 200表示正常0k,这个是地球人都知道的了. 301 Moved

  • IOS HTTP请求的常见状态码总结

    IOS HTTP请求的常见状态码总结 1xx消息 这一类型的状态码,代表请求已被接受,需要继续处理.这类响应是临时响应,只包含状态行和某些可选的响应头信息,并以空行结束.由于HTTP/1.0协议中没有定义任何1xx状态码,所以除非在某些试验条件下,服务器禁止向此类客户端发送1xx响应. 这些状态码代表的响应都是信息性的,标示客户应该采取的其他行动. 100 Continue 客户端应当继续发送请求.这个临时响应是用来通知客户端它的部分请求已经被服务器接收,且仍未被拒绝.客户端应当继续发送请求的剩

  • http 200、301、304等状态码详解

    当浏览者访问一个网页时,浏览者的浏览器会向网页所在服务器发出请求.当浏览器接收并显示网页前,此网页所在的服务器会返回一个包含HTTP状态码的信息头(server header)用以响应浏览器的请求 HTTP状态码的英文为HTTP Status Code. 下面是常见的HTTP状态码: •200 - 请求成功 •301 - 资源(网页等)被永久转移到其它URL •404 - 请求的资源(网页等)不存在 •500 - 内部服务器错误 200表示正常0k,这个是地球人都知道的了. 301 Moved

  • Shell脚本中获取进程ID的方法

    提问: 我想要知道运行中脚本子shell的进程id.我该如何在shell脚本中得到PID. 当我在执行shell脚本时,它会启动一个叫子shell的进程.作为主shell的子进程,子shell将shell脚本中的命令作为批处理运行(因此称为"批处理进程"). 在某些情况下,你也许想要知道运行中的子shell的PID.这个PID信息可以在不同的情况下使用.比如,你可以使用shell脚本的PID在/tmp下创建一个唯一的临时文件.有时侯脚本需要检测所有运行的进程,它可以从进程列表中排除自身

随机推荐

其他