五月综合缴情婷婷六月,色94色欧美sute亚洲线路二,日韩制服国产精品一区,色噜噜一区二区三区,香港三级午夜理伦三级三

您現(xiàn)在的位置: 365建站網(wǎng) > 365文章 > bat批處理 if 命令示例詳解

bat批處理 if 命令示例詳解

文章來源:365jz.com     點擊數(shù):646    更新時間:2017-08-10 11:39   參與評論
if 命令示例詳解

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)系符號見下表:

 

中文含義

關(guān)系符

英文解釋

等于

equ

equal

大于

gtr

greater than

大于或等于

geq

greater than or equal

小于

lss

less than

小于或不等于

leq

less than or equal

不等于

neq

no equal

 

  if語句還有一個精簡格式:if 條件表達式 語句,它的含義是:如果條件表達式成立,將執(zhí)行語句,否則,什么也不做。
 

if,正如它E文中的意思,就是“如果”的意思,用來進行條件判斷。翻譯過來的意思就是:如果符合某一條件,便執(zhí)行后面的命令。
主要用來判斷,1、兩個“字符串”是否相等;2、兩個數(shù)值是大于、小于、等于,然后執(zhí)行相應(yīng)的命令。
當(dāng)然還有特殊用法,如結(jié)合errorlevel:if errorlevel 1 echo error
或者結(jié)合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、檢測數(shù)值:(注意,批處理中大于符號不能用:“>”,而用"gtr",其它的也類似)
比較運算符一覽:
EQU - 等于
NEQ - 不等于
LSS - 小于
LEQ - 小于或等于
GTR - 大于
GEQ - 大于或等于
檢測數(shù)值 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結(jié)合errorlevel使用:
說明:環(huán)境變量errorlevel的初始值為0,當(dāng)一些命令執(zhí)行不成功,就會返回一個數(shù)值,如: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 預(yù)置錯誤阻止文件拷貝操作 
IF ERRORLEVEL 4 ECHO 拷貝過程中寫盤錯誤 
無論拷貝是否成功,后面的: 
未找到拷貝文件 
用戶通過ctrl-c中止拷貝操作 
預(yù)置錯誤阻止文件拷貝操作 
拷貝過程中寫盤錯誤 
都將顯示出來。
 
附錄: 
以下就是幾個常用命令的返回值及其代表的意義:  
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 拷貝過程中寫盤錯誤  

4、if還有一個特殊的用法就是可以用來檢測某個變量是否已經(jīng)被定義
用法示例:
 
@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)友會為你解答!! 點擊進入論壇

發(fā)表評論 (646人查看,0條評論)
請自覺遵守互聯(lián)網(wǎng)相關(guān)的政策法規(guī),嚴禁發(fā)布色情、暴力、反動的言論。
昵稱:
最新評論
------分隔線----------------------------

其它欄目

· 建站教程
· 365學(xué)習(xí)

業(yè)務(wù)咨詢

· 技術(shù)支持
· 服務(wù)時間:9:00-18:00
365建站網(wǎng)二維碼

Powered by 365建站網(wǎng) RSS地圖 HTML地圖

copyright © 2013-2024 版權(quán)所有 鄂ICP備17013400號