Windows 批处理脚本指南: If 语句
计算机只在乎0和1是吧?所以我们需要一种方法,来处理当条件是0的时候干什么,条件为1的时候又干什么。
好消息是 DOS 对条件语句支持的非常好。
检查文件或文件夹是否存在
IF EXIST "temp.txt" ECHO found
取反:
IF NOT EXIST "temp.txt" ECHO not found
If 和 Else 语句:
IF EXIST "temp.txt" (
ECHO found
) ELSE (
ECHO not found
)
NOTE: 在判断的表达式两边加上双引号,这样可以避免一些bug,比如变量不存在,导致语法错误。
检查变量是否初始化
IF "%var%"=="" (SET var=default value)
或者
IF NOT DEFINED var (SET var=default value)
检查变量是否与字符串匹配
SET var=Hello, World!
IF "%var%"=="Hello, World!" (
ECHO found
)
或者不区分大小写来比较:
SET var=Hello, World!
IF /I "%var%"=="hello, world!" (
ECHO found
)
算数运算符比较
SET /A var=1
IF /I "%var%" EQU "1" ECHO equality with 1
IF /I "%var%" NEQ "0" ECHO inequality with 0
IF /I "%var%" GEQ "1" ECHO greater than or equal to 1
IF /I "%var%" LEQ "1" ECHO less than or equal to 1
检查返回值
IF /I "%ERRORLEVEL%" NEQ "0" (
ECHO execution failed
)