BAT中if命令詳解

2021-08-01 18:59:33 字數 2715 閱讀 4598

if,正如它e文中的意思,就是「如果」的意思,用來進行條件判斷。翻譯過來的意思就是:如果符合某一條件,便執行後面的命令。

if 命令示例詳解

if,正如它e文中的意思,就是「如果」的意思,用來進行條件判斷。翻譯過來的意思就是:如果符合某一條件,便執行後面的命令。

主要用來判斷,1、兩個「字串」是否相等;2、兩個數值是大於、小於、等於,然後執行相應的命令。

當然還有特殊用法,如結合errorlevel:if errorlevel 1 echo error

或者結合defined(定義的意思):if defined test (echo it is defined) else echo it isn't defined

用法示例:

1、檢測字串(注意,用if檢測字串是否相等的時候,後面用的不是「=」,而是「==」):

複製****如下:

@echo off

set "str=this is a test"

rem 檢測變數%str%是否等於test,如果相等,顯示ok,否則顯示no

if "%str%"=="test" (echo ok) else echo no

pause>nul

2、檢測數值:(注意,批處理中大於符號不能用:「>」,而用"gtr",其它的也類似)

比較運算子一覽:

equ - 等於

neq - 不等於

lss - 小於

leq - 小於或等於

gtr - 大於

geq - 大於或等於

檢測數值 20 是否大於 15演示**:

複製****如下:

@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

3、if結合errorlevel使用:

說明:環境變數errorlevel的初始值為0,當一些命令執行不成功,就會返回乙個數值,如:1 ,2 等

if-errorlevel

測試**:

複製****如下:

@echo off

xcopy f:\test.bat d:\

if errorlevel 1 echo 檔案拷貝失敗

if errorlevel 0 echo 成功拷貝檔案

如果檔案拷貝成功,螢幕就會顯示「成功拷貝檔案」,否則就會顯示「檔案拷貝失敗」。

if errorlevel 是用來測試它的上乙個dos命令的返回值的,注意只是上乙個命令的返回值,而且返回值必須依照從大到小次序順序判斷。

因此下面的批處理檔案是錯誤的:

@echo off

xcopy c:\autoexec.bat d:\

if errorlevel 0 echo 成功拷貝檔案

if errorlevel 1 echo 未找到拷貝檔案

if errorlevel 2 echo 使用者通過ctrl-c中止拷貝操作

if errorlevel 3 echo 預置錯誤阻止檔案拷貝操作

if errorlevel 4 echo 拷貝過程中寫盤錯誤

無論拷貝是否成功,後面的:

未找到拷貝檔案

使用者通過ctrl-c中止拷貝操作

預置錯誤阻止檔案拷貝操作

拷貝過程中寫盤錯誤

都將顯示出來。

複製****如下:

附錄:以下就是幾個常用命令的返回值及其代表的意義:

backup

0 備份成功

1 未找到備份檔案

2 檔案共享衝突阻止備份完成

3 使用者用

ctrl-c中止備份

4 由於致命的錯誤使備份操作中止

diskcomp

0 盤比較相同

1 盤比較不同

2 使用者通過ctrl-c中止比較操作

3 由於致命的錯誤使比較操作中止

4 預置錯誤中止比較

diskcopy

0 盤拷貝操作成功

1 非致命盤讀/寫錯

2 使用者通過ctrl-c結束拷貝操作

3 因致命的處理錯誤使盤拷貝中止

4 預置錯誤阻止拷貝操作

format

0 格式化成功

3 使用者通過ctrl-c中止格式化處理

4 因致命的處理錯誤使格式化中止

5 在提示「proceed with format(y/n)?」下使用者鍵入n結束

xcopy

0 成功拷貝檔案

1 未找到拷貝檔案

2 使用者通過ctrl-c中止拷貝操作

4 預置錯誤阻止檔案拷貝操作

5 拷貝過程中寫盤錯誤

4、if還有乙個特殊的用法就是可以用來檢測某個變數是否已經被定義用法示例:

複製****如下:

@echo off

set "str1=ok"

set "str2=no"

if defined str1 echo str1已經被定義

if defined str2 echo str2已經被定義

if defined str3 (echo str3已經被定義) else echo str3 沒有被定義

pause>nul

BAT程式設計命令詳解

本文為cmd,bat下的程式語言流程,希望各位能用的上 如果沒有一定的相關知識恐怕不容易看懂和理解批處理檔案,也就更談不上自己動手編寫了 批處理檔案是無格式的文字檔案,它包含一條或多條命令。它的擴充套件名為 bat 或 cmd。在命令提示下鍵入批處理檔案的名稱,或者雙擊該批處理檔案,系統就會呼叫cm...

BAT命令大全

關閉單行回顯 echo off從下一行開始關閉回顯 echo off 從本行開始關閉回顯。一般批處理第一行都是這個 echo on 從下一行開始開啟回顯 echo顯示當前是 echo off 狀態還是 echo on 狀態 echo輸出乙個 回車換行 空白行 同echo,echo echo echo...

bat命令大全

序號1234567 標題目錄跳 cd 以樹形格式羅列檔案 tree 內容重定向 和 條件判斷 if流程跳 goto複製檔案 copy刪除檔案 del 首發日期更新日期 8重新命名檔案 夾 ren 9建立資料夾 md 10刪除資料夾 rd 11移動檔案 夾 move 12字串查詢 find 13141...