Jquery中文網 伊蒂哈德7比2 www.jvkwgx.com.cn
Jquery中文網 >  腳本編程  >  批處理/bat  >  正文 批處理 if命令的用法舉例

吉达伊蒂哈德赖杨:批處理 if命令的用法舉例

發布時間:2014-09-21   編輯:伊蒂哈德7比2 www.jvkwgx.com.cn
本文介紹下,批處理腳本中if命令的幾個例子,有興趣的朋友,可以一起研究下。

伊蒂哈德7比2 www.jvkwgx.com.cn 在批處理中,if命令或條件語句,用來判斷,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

您可能感興趣的文章:
什么是批處理
dos命令批量修改文件擴展名的例子
簡單批處理命令簡介
批處理符號簡介
批處理 if命令的用法舉例
批處理概念與方法
批處理的語句結構
dos命令備份數據庫與重啟apache
批量安裝windows補丁的批處理(bat)腳本
dos批處理靜默執行的方法(不彈出窗口)

[關閉]