批處理(bat)if 命令詳解

語法

if命令有以下5鍾用法

  • if "字符串1"=="字符串2" command 語句
    判斷兩個字符串是否相等
  • if 數值1 equ 數值2 command 語句
    判斷兩個數值是否相等
  • if exist filename command 語句
    判斷判斷驅動器,文件或文件夾是否存在
  • if defined 變量 command 語句
    判斷變量是否已經定義
  • if errorlevel 數值 command 語句
    判斷上個命令的返回值

示例

判斷文件是否存在

if exist d:\test.txt (echo D盤下有test.txt存在) else (echo D盤下不存在test.txt)

判斷字符串是否相等

if "abc"=="xyz" (echo 字符串abc等於字符串xyz) else (echo 字符串abc不等於字符串xyz)

判斷兩個數值是否相等

if 1 equ 2 (echo 1等於2) else (echo 1不等於2)

判斷變量是否已經定義

if defined str (echo 變量str已經被賦值,其值爲%str%) else (echo 變量str的值爲空)

判斷字符串是否相等的時候,if會區分大小寫,比如,單純的if語句會認爲字符串abc和字符串Abc不相同,若不想區分大小寫,則需要添 /i加開關,使用 if /i “字符串1"==“字符串2” 的格式;
另外,等於符號是連續的”==“而非單獨的”="。

判斷兩個數值之間的大小關係,除了等於用equ之外,還有其他的關係符號,所有適用於if語句的關係符號見下表:

中文含義 關係符 英文解釋
等於 equ equal
大於 gtr greater than
大於或等於 geq greater than or equal
小於 lss less than
小於或等於 leq less than or equal
不等於 neq no equal
@echo off 
if exist e:\123.bat goto st 
copy /y c:\123.bat e:\123.bat 
goto st 
:st 
start e:\123.bat 
exit 

判斷文件存不存在,存在就執行,不存在則複製文件到目標再執行。可按需要改動裏面的文件名,可爲EXE、BAT、CMD、COM等執行文件。

@echo off
set /p var1=請輸入第一個比較的字符:
set /p var2=請輸入第二個比軟的字符:
if "%var1%"=="%var2%" (echo 輸入的兩個字符相同) else echo 輸入的兩個字符不相同
pause

執行後會要求你輸入兩個字符串,然後批處理判斷它倆是否相同。在判斷字符串是否相等的時候,if是會區分大小寫

@echo off
if "a"=="A" (echo 輸入的兩個字符相同) else echo 輸入的兩個字符不相同
pause

執行後會顯示:輸入的兩個字符不相同
如果我們不想讓它區分大小寫,則可以加上/i 參數。

@echo off
if /i "a"=="A" (echo 輸入的兩個字符相同) else echo 輸入的兩個字符不相同
pause

這次執行後會顯示:輸入的兩個字符相同
注意:以上需要使用記事本編寫 在保存時 將擴展名改成*.即可

if exist 和 if 的區別

if exist 是用來判斷文件或目錄是否存在, 如果文件存在爲真, 如果文件不存在爲假。
if 用來判斷條件的真假。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章