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命令的方法。
如果一定要完成這樣的功能,也只能做一個程序,自己來檢測。
關于dos中的if語句語法
if 表示將判斷是否符合規定的條件,從而決定執行不同的命令。 有三種格式:
1、if "參數" == "字符串" 待執行的命令
參數如果等于指定的字符串,則條件成立,運行命令,否則運行下一句。(注意是兩個等號
)
如if "%1"=="a" format a:
if {%1}=={} goto noparms
if {%2}=={} goto noparms
2、if exist 文件名 待執行的命令
如果有指定的文件,則條件成立,運行命令,否則運行下一句。
如if exist * edit *
3、if errorlevel / if not errorlevel 數字 待執行的命令
如果返回碼等于指定的數字,則條件成立,運行命令,否則運行下一句。
如if errorlevel 2 goto x2
DOS程序運行時都會返回一個數字給DOS,稱為錯誤碼errorlevel或稱返回碼,常見的返回
碼為0、1。
DOS中if語句格式問題
if 表示將判斷是否符合規定的條件,從而決定執行不同的命令。 有三種格式:
1、if "參數" == "字符串" 待執行的命令
參數如果等于指定的字符串,則條件成立,運行命令,否則運行下一句。(注意是兩個等號
)
如if "%1"=="a" format a:
if {%1}=={} goto noparms
if {%2}=={} goto noparms
2、if exist 文件名 待執行的命令
如果有指定的文件,則條件成立,運行命令,否則運行下一句。
如if exist * edit *
3、if errorlevel / if not errorlevel 數字 待執行的命令
如果返回碼等于指定的數字,則條件成立,運行命令,否則運行下一句。
如if errorlevel 2 goto x2
DOS程序運行時都會返回一個數字給DOS,稱為錯誤碼errorlevel或稱返回碼,常見的返回
碼為0、1。
在DOS下用if語句實現以下程序
@echo off
for /l %%a in (1 1 9) do (
for /l %%b in (10 1 99) do (
for /l %%c in (100 1 100) do (
md 00%%a & echo.>00%%a\00%%* & cls
md 0%%b & echo.>0%%b\0%%* & cls
md %%c & echo.>%%c\%%* & cls
)
)
)
pause
:: IF 語句是不可能做到的 (IF 語句是條件判斷)
:: 你發的代碼是可以正確的建立文件夾和文本的
:: 我只能給你寫成一個 for 語句
:: 中國批處理腳本聯盟
請教DOS中if語句的寫法
if exist d:\* goto ghostd
if exist e:\* goto ghoste
if exist f:\* goto ghostf
goto error
:ghostd
* -clone,mode=pload,src=d:\*:1,dst=1:1 -sure -rb
goto end
:ghoste
* -clone,mode=pload,src=e:\*:1,dst=1:1 -sure -rb
goto end
:ghostf
* -clone,mode=pload,src=f:\*:1,dst=1:1 -sure -rb
goto end
:error
echo chucuo!
goto end
:end
dos中的if用法
參考一下: IF [NOT] ERRORLEVEL number commandIF [NOT] string1==string2 commandIF [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 當前數值的字串符表達式;否則,您會得到其數值。