Windows下批次檔(.bat)的使用

來源:互聯網
上載者:User

標籤:

批處理(Batch),就是進行批量的處理,英文譯文BATCH,批次檔尾碼BAT就取的前三個字母,通常被認為是一種簡化的指令碼語言,它應用於DOS和Windows系統中。批次檔是副檔名為.bat或.cmd的文字檔,包含一條或多條命令,由DOS或Windows系統內嵌的命令直譯器來解釋運行。批次程式雖然是在命令列環境中運行,但不僅僅能使用命令列軟體,任何當前系統下可啟動並執行程式都可以放在批次檔中運行

         批次檔是無格式的文字檔。在命令提示字元下鍵入批次檔的名稱,或者雙擊該批次檔,系統就會調用cmd.exe按照該檔案中各個命令出現的順序來逐個運行它們批次檔是一種簡單的程式,可以通過條件陳述式(if)和流程式控制制語句(goto)來控制命令啟動並執行流程,在批處理中也可以使用迴圈語句(for)來迴圈執行一條命令。每個編寫好的批次檔都相當於一個DOS的外部命令,你可以把它所在的目錄放到你的DOS搜尋路徑(path)中來使得它可以在任意位置運行。

         批處理的本質,是一堆DOS命令按一定順序排列而形成的集合。任何在命令提示字元下可使用的命令都可用在批次程式中

         批次檔的格式:每一行可視為一個命令,每個命令裡可以含多條子命令,從第一行開始執行,直到最後一行結束,它啟動並執行平台是DOS。

         批次檔中完全可以使用非dos命令,甚至可以使用不具有可執行特性的普通資料性檔案。

         批處理常用命令:批處理命令是不區分大小寫

1.        echo:顯示此命令後的字元;

2.        echo. :顯示一個空行(相當於輸入一個斷行符號的結果);

3.        echo off:在此語句後所有啟動並執行命令都不顯示命令列本身;

4.        @:@與echo off相似,但它是加在其它命令列的最前面,表示運行時不顯示命令列本身;

5.        call:調用另一條批次檔(如果直接調用別的批次檔,執行完那條命令後將無法執行當前檔案後續命令);

6.        start:調用外部程式,所有的DOS命令和命令列程式都可以由start命令來調用,等外部程式完成後才繼續執行剩下的指令;

7.        pause:運行此句會暫停,顯示Pressany key to continue… 等待使用者按任意鍵後繼續;

8.        rem:與::類似,表示此命令後的字元為解釋行,不執行,只是給自己今後尋找用的;

9.        %:表示參數,參數是指在運行批次檔時在檔案名稱後加的字串,變數可以從%0到%9,%0表示檔案名稱本身,字串用%1到%9順序表示;

10.    if:將判斷是否符合規定的條件,從而決定執行不同的命令;

11.    for:迴圈命令,只要條件符合,它將多次執行同一命令;

12.    choice:在批次程式中,通過顯示提示資訊並暫停批次程式,使用者可以從一組選項鍵中進行選擇;

13.    goto:跳轉命令,程式指標跳轉到指定的標籤,從標籤後的第一條命令開始繼續執行批次程式;

14.    set:顯示、設定或刪除變數,批處理中的變數是不區分類型的,不需要像C語言中的變數那樣還要區分int、float、char等;

15.    cls:清屏;

16.    ver:顯示版本

17.    >、>>:都是輸出重新導向命令,就是把前面命令的輸出寫入到一個檔案中;兩者的區別是”>”會清除掉原有檔案中的內容後把新的內容寫入原檔案,而”>>”只會另起一行追加新的內容到原檔案中,而不會改動其中的原有內容;

18.errorlevel:每個命令運行結束,可以用這個命令列格式查看返回碼,預設值為0,一般命令執行出錯會設errorlevel為1;

下面是個簡單的例子:autotest.bat

@echo off:: auto run unit testmkdir "E:/tmp/32"mkdir "E:/tmp/64" echo %date:~0,4%%date:~5,2%%date:~8,2%%time:~0,2%%time:~3,2%%time:~6,2%echo.echo start auto test ...set exePath=E:/tmp/api_x64/binif "%1"=="32" set exePath=E:/tmp/api_x86/binif "%1"=="64" set exePath=E:/tmp/api_x64/bin:: echo %1set srcImagePath=E:/tmp/testImagesset dstImagePath=E:/tmp/%1:: echo %dstImagePath%set txtOutput=%dstImagePath%/result.txt:: echo %txtOutput%echo A.exe >> %txtOutput%start /b /wait %exePath%/A.exe %srcImagePath%/cat.jpg %dstImagePath%/result_cat.jpg >> %txtOutput%echo A.exe %errorlevel%echo.echo B.exe >> %txtOutput%start /b /wait %exePath%/B.exe %srcImagePath%/dog.jpg 10 20 %dstImagePath%/result_dog.jpg >> %txtOutput%echo B.exe %errorlevel%echo.echo end auto test ...

參考文獻:

1.      http://baike.baidu.com/link?url=aYmX7ckGvNQkGaoApTIaa8oxivfLb8ygosyVNrM0DkE5I5mR0AhJGvLtwyZAiC6L3QYlk-YXggwYghWcyfQbxq

2.      http://wenku.baidu.com/link?url=SbWxLyV0sjiDgk0Cv5A0GzpR5x-d10xF1qfSbVi_p5OZ6xaZb2sw2tB14hcpuIh9smL2G76ViEiGO64VSMyHU-d3aseY_lSskYgApu3E3jm

著作權聲明:本文為博主原創文章,未經博主允許不得轉載。

Windows下批次檔(.bat)的使用

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.