if用于條件判斷,適用于以下情形:
1、判斷驅(qū)動器、文件或文件夾是否存在,用 if exist 語句;
2、判斷某兩個字符串是否相等,用 if "字符串1"=="字符串2" 語句;
3、判斷某兩個數(shù)值是否相等,用 if 數(shù)值1 equ 數(shù)值2 語句;
4、判斷某個變量是否已經(jīng)被賦值,用 if defined str 語句;
if語句的完整格式是這樣的:if 條件表達式 (語句1) else (語句2),它的含義是:如果條件表達式成立,那么,就執(zhí)行語句1,否則,將執(zhí)行語句2。
對于以上四種情形,可以分別使用如下代碼:
1、if exist d:\test.txt (echo D盤下有test.txt存在) else (echo D盤下不存在test.txt)
2、if "abc"=="xyz" (echo 字符串a(chǎn)bc等于字符串xyz) else (echo 字符串a(chǎn)bc不等于字符串xyz)
3、if 1 equ 2 (echo 1等于2) else (echo 1不等于2)
4、if defined str (echo 變量str已經(jīng)被賦值,其值為%str%) else (echo 變量str的值為空)
判斷字符串是否相等的時候,if會區(qū)分大小寫,比如,單純的if語句會認為字符串a(chǎn)bc和字符串Abc不相同,若不想?yún)^(qū)分大小寫,則需要添加 /i 開關(guān),使用 if /i "字符串1"=="字符串2" 的格式;另外,等于符號是連續(xù)的"=="而非單獨的"="。
判斷兩個數(shù)值之間的大小關(guān)系,除了等于用equ之外,還有其他的關(guān)系符號,所有適用于if語句的關(guān)系符號見下表:
if語句還有一個精簡格式:if 條件表達式 語句,它的含義是:如果條件表達式成立,將執(zhí)行語句,否則,什么也不做。
@echo off set "str=this is a test" REM 檢測變量%str%是否等于test,如果相等,顯示OK,否則顯示NO if "%str%"=="test" (echo OK) else echo NO pause>nul
@echo off set /a num1=20 set /a num2=15 if %num1% gtr %num2% echo %num1%大于%num2% if %num1% EQU %num2% echo %num1%等于%num2% if %num1% LSS %num2% echo %num1%小于%num2% pause>nul
@ECHO OFF XCOPY F:\test.bat D:\ IF ERRORLEVEL 1 ECHO 文件拷貝失敗 IF ERRORLEVEL 0 ECHO 成功拷貝文件
附錄: 以下就是幾個常用命令的返回值及其代表的意義: backup 0 備份成功 1 未找到備份文件 2 文件共享沖突阻止備份完成 3 用戶用ctrl-c中止備份 4 由于致命的錯誤使備份操作中止 diskcomp 0 盤比較相同 1 盤比較不同 2 用戶通過ctrl-c中止比較操作 3 由于致命的錯誤使比較操作中止 4 預(yù)置錯誤中止比較 diskcopy 0 盤拷貝操作成功 1 非致命盤讀/寫錯 2 用戶通過ctrl-c結(jié)束拷貝操作 3 因致命的處理錯誤使盤拷貝中止 4 預(yù)置錯誤阻止拷貝操作 format 0 格式化成功 3 用戶通過ctrl-c中止格式化處理 4 因致命的處理錯誤使格式化中止 5 在提示“proceed with format(y/n)?”下用戶鍵入n結(jié)束 xcopy 0 成功拷貝文件 1 未找到拷貝文件 2 用戶通過ctrl-c中止拷貝操作 4 預(yù)置錯誤阻止文件拷貝操作 5 拷貝過程中寫盤錯誤
@echo off set "str1=ok" set "str2=no" if defined str1 echo str1已經(jīng)被定義 if defined str2 echo str2已經(jīng)被定義 if defined str3 (echo str3已經(jīng)被定義) else echo str3 沒有被定義 pause>nul
如對本文有疑問,請?zhí)峤坏浇涣髡搲?,廣大熱心網(wǎng)友會為你解答!! 點擊進入論壇