DOS批处理命令-if语句
IF语句是批处理中执行的条件分歧处理。
批处理中,IF分歧的写法有好几种,接下来,我们来一个一个的分析IF语法的结构。
1、IF [NOT] ERRORLEVEL 番号 批处理命令
当ERRORLEVEL的值大于等于指定的番号的值时,执行指定的批处理命令。
@echo off
call :called0
IF ERRORLEVEL (
echo ERRORLEVEL = %ERRORLEVEL%
)
call :called1
IF ERRORLEVEL (
echo ERRORLEVEL = %ERRORLEVEL%
)
call :called2
IF ERRORLEVEL (
echo ERRORLEVEL = %ERRORLEVEL%
)
exit /b
:called0
SETLOCAL
echo called0
exit /b
ENDLOCAL
:called1
SETLOCAL
echo called1
exit /b
ENDLOCAL
:called2
SETLOCAL
echo called2
exit /b
ENDLOCAL
运行的结果为:
C:\Users\liuhongying>F:\tmp\a.bat
called0
called1
ERRORLEVEL = 100
called2
ERRORLEVEL = 101
发现,在返回值跟100比的时候,只有等于100和大于100的时候,执行到了下面的批处理命令,而在99的时候,就没有执行批处理命令,这个测试你结果,你就应该明白了吧!
2、IF [NOT] 文字列1==文字列2 批处理命令
这个判断是比较文字列1和文字列2是不是相等,如果是变量,就要用%来取出变量的值来比较。
IF [/I] [NOT] 文字列1==文字列2 批处理命令
有一个控制开关,/I,是控制比较的时候是不是忽略大小写。如果有/I这个开关存在的时候,比较的时候就会忽略大小写去比较。
看看下面这个例子,你就 应该全部明白了。
@echo off
IF abcdef==abcdef (
echo abcdef==abcdef
)
IF AbCdEF==abcdef (
echo AbCdEF==abcdef
)
IF /I ABCDEF==abcdef (
echo ABCDEF==abcdef
)
IF /I AbCdEF==abcdef (
echo AbCdEF==abcdef
)
F:\tmp>a.bat
abcdef==abcdef
ABCDEF==abcdef
AbCdEF==abcdef
3、IF [NOT] EXIST 文件名 批处理命令
帮助上面写的是判断文件名是否存在,其实,这个判断方法既可以判断文件是否存在,又可以判断路径是不是存在。
@echo off
IF EXIST F:\tmp\a.bat (
echo EXIST:F:\tmp\a.bat
)
IF EXIST F:\tmp (
echo EXIST:F:\tmp
)
执行结果:
F:\tmp>a.bat
EXIST:F:\tmp\a.bat
EXIST:F:\tmp
4、IF [/I] 文字列1 比較演算子 文字列2 批处理命令
对文字列1和文字列2按照比较演算子进行比较,比较结果为真的时候,就执行批处理命令指定的处理。
下面对几种比较演算子进行进行介绍。
EQU - 等于(等しい)
NEQ - 不等于(等しくない)
LSS - 小于(より小さい)
LEQ - 小于等于(以下)
GTR - 大于(より大きい)
GEQ - 大于等于(以上)
下边这个例子,对这几个判断符进行解说
@echo off
echo EQU
IF a EQU a (
echo a EQU a
)
IF a EQU b (
echo a EQU b
)
echo NEQ
IF a NEQ a (
echo a NEQ a
)
IF a NEQ b (
echo a NEQ b
)
echo LSS
IF a LSS a (
echo a LSS a
)
IF a LSS b (
echo a LSS b
)
IF b LSS a (
echo b LSS a
)
echo LEQ
IF a LEQ a (
echo a LEQ a
)
IF a LEQ b (
echo a LEQ b
)
IF b LEQ a (
echo b LEQ a
)
echo GTR
IF a GTR a (
echo a GTR a
)
IF a GTR b (
echo a GTR b
)
IF b GTR a (
echo b GTR a
)
echo GEQ
IF a GEQ a (
echo a GEQ a
)
IF a GEQ b (
echo a GEQ b
)
IF b GEQ a (
echo b GEQ a
)
运行结果为:
F:\tmp>a.bat
EQU
a EQU a
NEQ
a NEQ b
LSS
a LSS b
LEQ
a LEQ a
a LEQ b
GTR
b GTR a
GEQ
a GEQ a
b GEQ a
5、IF CMDEXTVERSION 番号 批处理命令
最初的CMDEXTVERSION的值是1,当扩展命令可以使用的时候,CMDEXTVERSION的值就比1大了。
并且,当扩张技能无效的时候,这个表达式命题恒为假。
更加具体的作用,这里不去探讨了,如果以后有需要,用到了,在去追加吧!
6、IF DEFINED 変数 批处理命令
如果指定的变数定义的时候,就执行批处理命令指定的处理。更加准确的描述应该是,指定的便是的值是空的时候,句执行批处理命令指定的处理。
@echo off
set var1=abc
set var3=
set var4=
IF DEFINED var1 (
echo DEFINED var1
)
IF DEFINED var2 (
echo DEFINED var2
)
IF DEFINED var3 (
echo DEFINED var3
)
IF DEFINED var4 (
echo DEFINED var4
)
*var3=后面是没有设置空格
*var4=后面是设置空格的
运行结果为:
F:\tmp>a.bat
DEFINED var1
DEFINED var3
PS:以上的语法介绍中,都没有详细介绍另个重要点
A:所有加[NOT]的地方,如果加了NOT以后,就将判断的调节取反。
B:所有的命令都没有介绍else的语法,所有的IF判断,都是可以再行后最佳【else 批处理命令】,也就是说,当判断条件不成立的时候,执行批处理命令指定的处理。
更推荐的写法是,所有批处理命令都加上小括号,如下述结果
IF 条件 (
条件为真的时候的处理
) else (
条件为假的时候的处理
)
DOS批处理命令-if语句的更多相关文章
- DOS批处理命令-for语句
for是为了循环执行一系列命令而执行的命令语句. for要处理的内容不同,语法结构稍有不同.下面就各种情形来分别 1.基本的语法:FOR %変数 IN (set) DO 命令 [参数] 语法内容解析: ...
- DOS批处理命令判断操作系统版本、执行各版本对应语句
DOS批处理命令判断操作系统版本.执行各版本对应语句 昨天在家里试用 netsh interface ip set address 这些命令更改上网IP.DNS.网关等,今天将那些代码拿来办公室 ...
- DOS批处理命令递归删除给定的文件(夹),兼VC工程清理小工具
使用dos批处理命令递归删除指定的文件(夹): (下面内容针对清理VC工程!自己按说明任意修改) 2014-06-10修改:删除前增加了[y,n]询问: echo off rem 递归删除当前文件下指 ...
- DOS批处理命令-@命令
@命令是一个禁止当前语句回显的简单命令. 语法: @[command].[command]是要屏蔽的批处理命令 例如执行包含以下内容的bat文件 echo on @echo ------- @echo ...
- DOS批处理命令-几个固定名称的变量
批处理中有一些变量的变量名称是固定的,具有特定的意义,接下来,我们来看看这些有特定意义的变量到底有什么意义. 1.%CD% 当前路径的路径名[盘符 + 路径] - 現在のディレクトリ文字列に ...
- cocos2d-x教程3:用php或DOS批处理命令来转换文件和解压缩zip
在cocos2d-x使用中,须要不停的转换文件和压缩或解压文件.假设全人工来做,太麻烦了,且easy出错. 我如今把一些用的到批处理贴出来,供大家使用 自己主动把dat文件按数字排序重命名gz.DOS ...
- DOS批处理命令-call命令
call命令 在批处理中调用别的批处理或者可运行程序或者 バッチ プログラムを別のバッチ プログラムから呼び出します. 语法 1.CALL [驱动盘符:][路径]文件名 [参数] 调用并执行[驱动盘符 ...
- DOS批处理命令-注释
注释是每个程序中不可或缺的(不是对计算机来说,而是对我们这些程序员阅读代码来说) 语法: ①rem 这是批处理的注释命令,rem后面的内容全部是注释 例:rem 这是一行注释 ②:: 批处理遇到以冒号 ...
- DOS批处理命令-pause
“pause”用于暂停批处理的执行器并给出提示信息,然后由用户决定是继续执行还是终端执行. 语法: pause 简单一个pause,不附带任何参数. 执行pause以后会提示一句话[按任意键继续执行] ...
随机推荐
- Codeforces Round #172 (Div. 2) C. Rectangle Puzzle 数学题几何
C. Rectangle Puzzle Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/281/p ...
- material-singleinputform
https://github.com/HeinrichReimer/material-singleinputform https://play.google.com/store/apps/detail ...
- Android应用程序框架之无边界设计意图
Android的应用框架的外特性空间的描述在SDK文档有十分清楚的描述,Android应用的基本概念,组件生命周期等等有详细的描述.在外特性空间中,Android提供了Activity,Service ...
- Servlet---JavaWeb技术的核心基础,JavaWeb框架的基石(二)
一.Servlet之Request Web服务器会对收到的每一次客户端http请求分别创建一个用于代表请求的request对象和代表响应的response对象.要获取客户端提交的数据需 ...
- ios开发——实战Swift篇&简单项目的实现
学了这么久的swift语法和相关技术,今天忍不住手痒痒就写了一个swift的小项目,这个项目非常简单(只是使用一个UITableView),但是里面的功能却非常有用. 我们要实现的功能是这样的: 程序 ...
- mysql-锁表机制分析(转)
为了给高并发情况下的mysql进行更好的优化,有必要了解一下mysql查询更新时的锁表机制.一.概述MySQL有三种锁的级别:页级.表级.行级.MyISAM和MEMORY存储引擎采用的是表级锁(tab ...
- 解决PowerDesigner 反向工程没有注释(备注)
本文转载自:http://www.cnblogs.com/zhangxb/archive/2012/04/20/2458898.html 1. 列注释 原来代码: {OWNER, TABLE, S, ...
- btn控件
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin ...
- C#_Fileuploadify_notMvc_description
Uploadify Version 3.2 Options选项设置 auto 选择文件后自动上传 buttonClass 给“浏览按钮”加css的class样式 buttonCursor 鼠标移上去形 ...
- 【Git - 基础篇】如何快速有效的管理你的代码 - 安装和配置
[本文仅凭个人经验进行整理,如有错误,欢迎指正,互相学习^^] -------------------------------------------------------------------- ...