語句結構(1)
阿新 • • 發佈:2018-11-06
類似於C語言,批處理也有它的語句結構。批處理的語句結構主要有選擇結構(if語句)、迴圈結構(for語句)等。 if語句(選擇結構) if語句實現條件判斷,包括字串比較、存在判斷、定義判斷等。通過條件判斷,if語句即可以實現選擇功能。 1、字串比較 if語句僅能夠對兩個字元(串)是否相同、先後順序進行判斷等。其命令格式為: IF [/I] [not] string1 compare-op string2 command1 [else command2] 其中,比較操作符compare-op有以下幾類: == - 等於 EQU - 等於 NEQ - 不等於 LSS- 小於 LEQ - 小於或等於 GTR - 大於 GEQ - 大於或等於 選擇開關/i則不區分字串大小寫;選擇not項,則對判斷結果進行邏輯非。 字串比較示例: =============================================== @echo off set str1=abcd1233 set str2=ABCD1234 if %str1%==%str2% (echo 字串相同!) else (echo 字串不相同!) if /i %str1% LSS %str2% (echo str1^<str2) else (echo str1^>=str2) echo.set /p choice=是否顯示當前時間?(y/n) if /i not %choice% EQU n echo 當前時間是:%date% %time% pause>nul =============================================== 對於最後一個if判斷,當我們輸入n或N時的效果是一樣的,都不會顯示時間。 如果我們取消開關/i,則輸入N時,依舊會顯示時間。 另外請注意一下幾個細節:1-echo str1^<str2和echo str1^>=str2;2-echo.。 2、存在判斷 存在判斷的功能是判斷檔案或資料夾是否存在。其命令格式為: IF [NOT] EXIST filename command1 [else command2] =============================================== @echo off if exist %0 echo 檔案%0是存在的! if not exist %~df0 ( echo 資料夾%~df0不存在! ) else echo 資料夾%~df0存在! pause>nul =============================================== 這裡注意幾個地方: 1-存在判斷既可以判斷檔案也可以判斷資料夾; 2-%0即代表該批處理的全稱(包括驅動器碟符、路徑、檔名和擴充套件型別); 3-%~df0是對%0的修正,只保留了其驅動器碟符和路徑,詳情請參考for /?, 屬高階批處理範疇; 4-注意if語句的多行書寫,多行書寫要求command1的左括號必須和if在同一行、else必須和command1的右括號同行、command2的左括號必須與else同行、command1和command2都可以有任意多行,即command可以是命令集。 3、定義判斷 定義判斷的功能是判斷變數是否存在,即是否已被定義。其命令格式為: IF [not] DEFINED variable command1 [else command2] 存在判斷舉例: =============================================== @echo off set var=111 if defined var (echo var=%var%) else echo var尚未定義! set var= if defined var (echo var=%var%) else echo var尚未定義! pause>nul =============================================== 對比可知,"set var="可以取消變數,收回變數所佔據的記憶體空間。