使用dos批次檔的幾個進階命令,判斷

來源:互聯網
上載者:User

if goto choice for 是批次檔中比較進階的命令,如果這幾個你用得很熟練,你就是批次檔的專家啦。

if 表示將判斷是否符合規定的條件,從而決定執行不同的命令。 有三種格式:
1、 if "參數" == "字串"  待執行的命令
參數如果等於指定的字串,則條件成立,運行命令,否則運行下一句。(注意是兩個等號)
如if "%1"=="a" format a:

2、 if exist 檔案名稱  待執行的命令
如果有指定的檔案,則條件成立,運行命令,否則運行下一句。如if exist config.sys edit config.sys

3、 if errorlevel 數字  待執行的命令
如果返回碼等於指定的數字,則條件成立,運行命令,否則運行下一句。如if errorlevel 2 goto x2  DOS程式運行時都會返回一個數字給DOS,稱為錯誤碼errorlevel或稱返回碼

goto 批次檔運行到這裡將跳到goto 所指定的標號處, 一般與if配合使用。 如:

goto end

:end
echo this is the end

標號用 :字串 表示,標號所在行不被執行

choice 使用此命令可以讓使用者輸入一個字元,從而運行不同的命令。使用時應該加/c:參數,c:後應寫提示可輸入的字元,之間無空格。它的返回碼為1234……

如: choice /c:dme defrag,mem,end
將顯示
defrag,mem,end[D,M,E]?

例如,test.bat的內容如下:
@echo off
choice /c:dme defrag,mem,end
if errorlevel 3 goto defrag 應先判斷數值最高的錯誤碼
if errorlevel 2 goto mem
if errotlevel 1 goto end

:defrag
c:\dos\defrag
goto end

:mem
mem
goto end

:end
echo good bye

此檔案運行後,將顯示 defrag,mem,end[D,M,E]? 使用者可選擇d m e ,然後if語句將作出判斷,d表示執行標號為defrag的程式段,m表示執行標號為mem的程式段,e表示執行標號為end的程式段,每個程式段最後都以goto end將程式跳到end標號處,然後程式將顯示good bye,檔案結束。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.