批處理中的IF詳解
在CMD使用IF /?打開IF的系統幫助會發現IF有3種基本的用法!
第一種用法:IF [NOT] ERRORLEVEL number command
這種用法現在很少用了,因為它需要使用到CHOICE命令,這個命令現在被set /p代替了,它是判斷CHOICE命令選擇的選項的,CHOICE命令是一個提供選項功能的命令。
例子:
這個用法的基本做用是判斷上一條命令執行結果的代碼,以決定下一個步驟.一般上一條命令的執行結果代碼只有兩結果,"成功"用0表示 "失敗"用1表示.
第二種用法:IF [NOT] string1==string2 command
第三種用法:IF [NOT] EXIST filename command
IF增強的用法
IF [/I] string1 compare-op string2 command #參數/I表示不區分大小寫
IF CMDEXTVERSION number command
IF DEFINED variable command #判斷變量是否存在,很有用
CMDEXTVERSION 條件的作用跟 ERRORLEVEL 的一樣,除了它是在跟與命令擴展名有關聯的內部版本號比較。第一個版本是 1。每次對命令擴展名有相當大的增強時,版本號會增加一個。命令擴展名被停用時,CMDEXTVERSION 條件不是真的。
如果已定義環境變量,DEFINED 條件的作用跟 EXISTS 的一樣,下面兩條命令效果一樣。
IF DEFINED variable command
IF NOT "variable"=="" command
用“set variable=”命令使變量variable變成未定義,即空值,一句話,變量值為空,則為未定義;變量值不為空,則為已定義。
用語句IF DEFINED variable command判斷變量是否存在時,請註意variable為不使用引導符號%的變量名,不能用寫為%variable%,否則出錯。
@echo off
set a=10
if DEFINED a (echo l hava define) else (echo l don‘t define)
set a=
if DEFINED a (echo l hava define) else (echo l don‘t define)
pause
輸出:
l hava define
l don‘t define
最後面還有一些用來判斷數字的符號:
EQU - 等於
NEQ - 不等於
LSS - 小於
LEQ - 小於或等於
GTR - 大於
GEQ - 大於或等於
@echo off set /p var=請輸入一個數字: if %var% LEQ 4 (echo 我小於等於4) ELSE echo 我不小於等於4 pause
批處理中的IF詳解