批處理中的IF詳解


在CMD使用IF /?打開IF的系統幫助會發現IF有3種基本的用法!

第一種用法:IF [NOT] ERRORLEVEL number command

這種用法現在很少用了,因為它需要使用到CHOICE命令,這個命令現在被set /p代替了,它是判斷CHOICE命令選擇的選項的,CHOICE命令是一個提供選項功能的命令。

例子:

這個用法的基本做用是判斷上一條命令執行結果的代碼,以決定下一個步驟.一般上一條命令的執行結果代碼只有兩結果,"成功"用0表示  "失敗"用1表示.

第二種用法:IF [NOT] string1==string2 command

第三種用法:IF [NOT] EXIST filename command

IF增強的用法

  IF [/I] string1 compare-op string2 command #參數/I表示不區分大小寫
  IF CMDEXTVERSION number command
  IF DEFINED variable command          #判斷變量是否存在,很有用

  CMDEXTVERSION 條件的作用跟 ERRORLEVEL 的一樣,除了它是在跟與命令擴展名有關聯的內部版本號比較。第一個版本是 1。每次對命令擴展名有相當大的增強時,版本號會增加一個。命令擴展名被停用時,CMDEXTVERSION 條件不是真的。

如果已定義環境變量,DEFINED 條件的作用跟 EXISTS 的一樣,下面兩條命令效果一樣。
  IF DEFINED variable command
  IF NOT "variable"=="" command

用“set variable=”命令使變量variable變成未定義,即空值,一句話,變量值為空,則為未定義;變量值不為空,則為已定義。
用語句IF DEFINED variable command判斷變量是否存在時,請注意variable為不使用引導符號%的變量名,不能用寫為%variable%,否則出錯。

@echo off

  set a=10
  if DEFINED a (echo l hava define) else (echo l don't define)
  set a=
  if DEFINED a (echo l hava define) else (echo l don't define)

pause

輸出:

  l hava define
  l don't define


最后面還有一些用來判斷數字的符號:
    EQU - 等於
    NEQ - 不等於
    LSS - 小於
    LEQ - 小於或等於
    GTR - 大於
    GEQ - 大於或等於

@echo off
set /p var=請輸入一個數字:
if %var% LEQ  4 (echo 我小於等於4) ELSE echo 我不小於等於4
pause


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM