Windows下批处理文件(.bat)的使用
批處理(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/bin
if "%1"=="64" set exePath=E:/tmp/api_x64/bin
:: echo %1set srcImagePath=E:/tmp/testImages
set 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)的使用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Artistic Style在windo
- 下一篇: UTF-8 CPP的使用