DOS命令的if語句
以下代碼是使用 if /? >> C:\* 生成的。
----------- 執行批處理程序中的條件處理。IF [NOT] ERRORLEVEL number command IF [NOT] string1==string2 command IF [NOT] EXIST filename command NOT 指定只有條件為 false 的情況下, Windows XP 才 應該執行該命令。
ERRORLEVEL number 如果最后運行的程序返回一個等于或大于 指定數字的退出編碼,指定條件為 true。 string1==string2 如果指定的文字字符串匹配,指定條件為 true。
EXIST filename 如果指定的文件名存在,指定條件為 true。 command 如果符合條件,指定要執行的命令。
如果指定的 條件為 FALSE,命令后可跟一個執行 ELSE 關鍵字后的命令的 ELSE 命令。ELSE 子句必須在 IF 之后出現在同一行上。
例如: IF EXIST filename. ( del filename. ) ELSE ( echo filename. missing. ) 因為 del 命令需要用一個新行終止,以下子句不會有效:IF EXIST filename. del filename. ELSE echo filename. missing 由于 ELSE 命令必須與 IF 命令的尾端在同一行上,以下子句也 不會有效: IF EXIST filename. del filename. ELSE echo filename. missing 如果都放在同一行上,以下子句有效: IF EXIST filename. (del filename.) ELSE echo filename. missing 如果命令擴展名被啟用,IF 會如下改變: IF [/I] string1 compare-op string2 command IF CMDEXTVERSION number command IF DEFINED variable command 其中,比較運算符可以是: EQU - 等于 NEQ - 不等于 LSS - 小于 LEQ - 小于或等于 GTR - 大于 GEQ - 大于或等于 及 /I 開關;如果該開關被指定,則說明要進行的字符串比較不分 大小寫。/I 開關可以用于 IF 的 string1==string2 的形式上。
這些 比較都是通用的;原因是,如果 string1 和 string2 都是由數字 組成的,字符串會被轉換成數字,進行數字比較。CMDEXTVERSION 條件的作用跟 ERRORLEVEL 的一樣,除了它 是在跟與命令擴展名有關聯的內部版本號比較。
第一個版本 是 1。每次對命令擴展名有相當大的增強時,版本號會增加一個。
命令擴展名被停用時,CMDEXTVERSION 條件不是真的。如果已定義環境變量,DEFINED 條件的作用跟 EXISTS 的一樣,除了它取得一個環境變量,返回的結果是 true。
如果沒有名為 ERRORLEVEL 的環境變量,%ERRORLEVEL% 會擴充為 ERROLEVEL 當前數值的字符串表達式;否則,您會得到 其數值。運行程序后,以下語句說明 ERRORLEVEL 的用法: goto answer%ERRORLEVEL% :answer0 echo Program had return code 0 :answer1 echo Program had return code 1 您也可以使用以上的數字比較: IF %ERRORLEVEL% LEQ 1 goto okay 如果沒有名為 CMDCMDLINE 的環境變量,%CMDCMDLINE% 將在 * 進行任何處理前擴充為傳遞給 * 的原始 命令行;否則,您會得到其數值。
如果沒有名為 CMDEXTVERSION 的環境變量,%CMDEXTVERSION% 會擴充為 CMDEXTVERSION 當前數值的 字串符表達式;否則,您會得到其數值。--------------- 代碼結束。
針對樓主問題說明:你說的不可能實現。因為DOS不可能提供給你判斷正在運行的Dos命令的方法。
如果一定要完成這樣的功能,也只能做一個程序,自己來檢測。
cmd if 用法
這是dos命令嗎?
其中,比較運算符可以是: EQU - 等於 NEQ - 不等於 LSS - 小於 LEQ - 小於或等於 GTR - 大於 GEQ - 大於或等於 及 /I 開關;如果該開關被指定,則說明要進行的字符串比較不分 大小寫。/I 開關可以用於 IF 的 string1==string2 的形式上。這些 比較都是通用的;原因是,如果 string1 和 string2 都是由數字 組成的,字符串會被轉換成數字,進行數字比較。 CMDEXTVERSION 條件的作用跟 ERRORLEVEL 的一樣,除了它 是在跟與命令擴展名有關聯的內部版本號比較。第一個版本 是 1。每次對命令擴展名有相當大的增強時,版本號會增加一個。 命令擴展名被停用時,CMDEXTVERSION 條件不是真的。 如果已定義環境變量,DEFINED 條件的作用跟 EXISTS 的一樣, 除了它取得一個環境變量,返回的結果是 true。 如果沒有名為 ERRORLEVEL 的環境變量,%ERRORLEVEL% 會擴充為 ERROLEVEL 當前數值的字符串表達式;否則,您會得到 其數值。運行程序后,以下語句說明 ERRORLEVEL 的用法: goto answer%ERRORLEVEL% :answer0 echo Program had return code 0 :answer1 echo Program had return code 1 您也可以使用以上的數字比較: IF %ERRORLEVEL% LEQ 1 goto okay 如果沒有名為 CMDCMDLINE 的環境變量,%CMDCMDLINE% 將在 * 進行任何處理前擴充為傳遞給 * 的原始 命令行;否則,您會得到其數值。 如果沒有名為 CMDEXTVERSION 的環境變量, %CMDEXTVERSION% 會擴充為 CMDEXTVERSION 當前數值的 字串符表達式;否則,您會得到其數值。