牛骨文教育服务平台(让学习变的简单)
博文笔记

bat中if语句的用法

创建时间:2014-07-15 投稿人: 浏览次数:13056

   例如,删除“C:Documents and SettingsAdministrator桌面T1 xt批处理实验unit1”里的a.txt文件,使用if的代码如下:

@echo off
if exist "C:Documents and SettingsAdministrator桌面T1	xt批处理实验unit1a.txt" (
  echo file is find!
del "C:Documents and SettingsAdministrator桌面T1	xt批处理实验unit1a.txt"
) else (
  echo file is not found!
)
pause>nul 

  将上述代码保存为if_del.bat,效果如下:


2.if——条件判断(分支)语句

   “if”语句是批处理中的条件分支语句,表示的意思就是“如果...则...否则...”,大多用在批处理程序中的条件处理部分。“if”语句在批处理中使用的是比较广泛的,例如要查看某个文件,则首先要确定该文件存在才可以查看,否则MS-DOS会抛出错误信息,这个时候就可以使用“if”语句进行判断。“if”命令语句是通过条件成立与否来决定语句的执行,这里的条件成立和条件不成立可以理解为“true”和“false”,但是批处理中不存在这两个常量。“if”语句所表达的意思是只有当条件成立时才会执行指定的命令语句,主要有以下几种用法。

1.判断信息是否相等(“==”)

   “if”命令语句就是用于条件的判断,然而由于批处理脚本本身比较弱化,所以初始的MS-DOS只能支持信息相等的比较,也就是只支持“==”操作符。用于比较字符串与字符串、变量与变量、变量与字符串之间是否相等,如果相等则表示条件成立。用法如下:

if [not] 信息比较表达式 (

   命令行1

) else (

   命令行2

)

这里的“信息比较表达式”的格式为“字符串1==字符串2”或“变量1==变量2”或“变量==字符串”的形式,也即是说只能使用“==”进行字符串或变量之间的比较,上面的“not”表示相反操作,不做多的解释,来看下面的例子:

1 2 3 4 5 6 7 @echo off if abc==ABC (    echo abc euqal ABC else (    echo abc not euqal ABC ) pause>nul

保存为批处理文件,执行既可以看到效果,可以自行修改,添加“not”试试。

2.判断错误级别信息

   错误级别“errorlevel”是MS-DOS的内置环境变量,在上面已经介绍过,主要用于保存上一条命令语句是否执行成功,成功则返回0,失败或错误则返回相对应的错误级别码。然而“errorlevel”是内置环境变量,所以可以使用下面的方式判断:

1 2 3 4 5 6 7 @echo off if %errorlevel%==0 (   echo success! else (   echo failed! ) pause>nul

然而“if”语句提供了一种特殊的错误级别判断方式,如下:

if [not] errorlevel number (

   命令行1

) else (

   命令行2

)

这种方式并不是使用变量的方式进行引用,而是作为关键字使用,“number”表示一个错误级别码,“not”表示相反操作,不做多的解释。使用这种方式比较简洁。

3.判断文件是否存在

   在上面已经提到关于文件是否存在的判断,“if”语句提供了一种特殊的文件判断方案,用法如下:

if [not] exist filepath (

   命令行1

) else (

   命令行2

)

其中“exist”是关键字表示“存在”,“filepath”表示要判断的文件路径,如果检查到指定的文件存在则执行对应的命令块,“not”表示相反操作,不做多的解释。多说无益,直接看例子:

1 2 3 4 5 6 7 8 @echo off if exist C:a.txt (   echo file is find! del C:a.txt else (   echo file is not found! ) pause>nul

上面的例子表示如果检查到C盘存在“a.txt”文件则删除该文件,保存为批处理文件试试即可。

4.判断MS-DOS扩展版本号(扩展用法)

   MS-DOS扩展版本号“cmdextversion”是MS-DOS的内置环境变量,在上面已经介绍过,当在使用某个新扩展特征时可以首先判断版本号是否对应,不过该用法需要在启用命令扩展之后才能使用,而命令扩展默认是启用的,进行扩展版本号判断是“if”语句的扩展用法。用法如下:

if cmdextversion number (

   命令行1

) else (

   命令行2

)

意思是说当当前批处理扩展版本号与给定的“number”值对应时执行“语句1”否则执行“语句2”,大多数情况下不会使用这个命令语句。

5.判断变量是否存在(扩展用法)

   变量是否存在的检查是“if”语句的扩展用法,用法比较广,可以判断变量是否被声明,然后在斟酌使用,不

声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。