標籤: 暫無標籤

批處理,顧名思義就是進行批量的處理。批處理文件是擴展名為。bat 或。cmd的文本文件,包含一條或多條命令,由DOS或Windows系統內嵌的命令解釋器來解釋運行。

1基本信息

批處理文件是無格式的文本文件。在命令提示下鍵入批處理文件的名稱,或者雙擊該批處理文件,系統就會調用Cmd.exe按照該文件中各個命令出現的順序來逐個運行它們。使用批處理文件(也被稱為批處理程序或腳本),可以簡化日常或重複性任務。
批處理的本質,是一堆DOS命令按一定順序排列而形成的集合。
批處理,也稱為批處理腳本,英文譯為BATCH,批處理文件後綴BAT就取的前三個字母。它的構成沒有固定格式,只要遵守以下這條就ok了:每一行可視為一個命令,每個命令里可以含多條子命令,從第一行開始執行,直到最後一行結束,它運行的平台是DOS。批處理有一個很鮮明的特點:使用方便、靈活,功能強大,自動化程度高。
它有什麼用呢?
比如,在啟動wps軟體時,每次都必須執行
C:\>cd wps
C:\WPS>spdos
C:\WPS>py
C:\WPS>wbx
C:\WPS>wps
如果每次用WPS之前都這樣執行一次,您是不是覺得很麻煩呢?
如果有一個方法,只需編寫一個批處理文件,就會自動執行剛才的所有命令,您想不想學呢?
當您看完此節,自己編寫的第一個批處理文件順利執行時,您一定會大吃一驚的。
此外電腦每次啟動時都會尋找autoexec.bat這條批處理文件,從而可執行一些每次開機都要執行的命令,如設置路徑path、載入滑鼠驅動mouse、磁碟加速smartdrv等,可以使您的電腦真正自動化。
echo、@、call、pause、rem 是批處理文件最常用的幾個命令,我們就從他們開始學起。 echo 表示顯示此命令后的字元
echo off 表示在此語句后所有運行的命令都不顯示命令行本身
@ 與echo off相象,但它是加在其它命令行的最前面,表示運行時不顯示命令行本身。
call 調用另一條批處理文件(如果直接調用別的批處理文件 ,執行完那條文件后將無法執行當前文件後續命令)
pause 運行此句會暫停,顯示Press any key to continue... 等待用戶按任意鍵後繼續
rem 表示此命令后的字元為解釋行,不執行,只是給自己今後查找用的
例:用edit編輯a.bat文件,輸入下列內容后存檔為c:\a.bat,執行該批處理文件后可實現:將根目錄中所有文件寫入 a.txt中,啟動UCDOS,進入WPS等功能。

2內容

批處理文件的內容為: 文件表示:
echo off 不顯示命令行
dir c:\*.* >a.txt 將c盤文件列表寫入a.txt
call c:\ucdos\ucdos.bat 調用ucdos
echo 你好 顯示"你好"
pause 暫停,等待按鍵繼續
rem 使用wps 註釋將使用wps
cd ucdos 進入ucdos目錄
wps 使用wps
批處理文件中還可以像C語言一樣使用參數,這隻需用到一個參數表示符%。
%表示參數,參數是指在運行批處理文件時在文件名后加的字元串。變數可以從 %0到%9,%0表示文件名本身,字元串用%1到%9順序表示。
例如,C:根目錄下一批處理文件名為f.bat,內容為 format %1
則如果執行C:\>f a: 則實際執行的是format a:
又如C:根目錄下一批處理文件的名為t.bat,內容為 type %1 type %2
那麼運行C:\>t a.txt b.txt 將順序地顯示a.txt和b.txt文件的內容
if goto choice for 是批處理文件中比較高級的命令,如果這幾個你用得很熟練,你就是批處理文件的專家啦。
if 表示將判斷是否符合規定的條件,從而決定執行不同的命令。 有三種格式:
1、if "參數" == "字元串" 待執行的命令
參數如果等於指定的字元串,則條件成立,運行命令,否則運行下一句。(注意是兩個等號)
如if "%1"=="a" format a:
2、if exist 文件名 待執行的命令
如果有指定的文件,則條件成立,運行命令,否則運行下一句。如if exist config.sysedit 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,文件結束。
for 循環命令,只要條件符合,它將多次執行同一命令。
格式FOR [%%f] in (集合) DO [命令]
只要參數f在指定的集合內,則條件成立,執行命令
如果一條批處理文件中有一行:
for %%c in (*.bat *.txt) do type %%c
含義是如果是以bat或txt結尾的文件,則顯示文件的內容。
autoexec.bat
DOS在啟動會自動運行autoexec.bat這條文件,一般我們在裡面裝載每次必用的程序,如: path(設置路徑)、smartdrv(磁碟加速)、 mouse(滑鼠啟動)、mscdex(光碟機連接)、 doskey(鍵盤管理)、set(設置環境變數)等。
如果啟動盤根目錄中沒有這個文件,電腦會讓用戶輸入日期和時間。
例如,一個典型的autoexec.bat內容如下:
@echo off 不顯示命令行
prompt $p$g 設置提示符前有目錄提示
path c:\dos;c:\;c:\windows;c:\ucdos;c:\tools 設置路徑
lh c:\dos\doskey.com載入鍵盤管理
lh c:\mouse\mouse.com 載入滑鼠管理
lh c:\dos\smartdrv.exe 載入磁碟加速管理
lh c:\dos\mscdex /S /D:MSCD000 /M:12 /V 載入CD-ROM驅動
set temp=c:\temp 設置臨時目錄

3常用命令

echo 命令
打開回顯或關閉請求回顯功能,或顯示消息。如果沒有任何參數,echo 命令將顯示當前回顯設置。
語法
echo [{on|off}] [message]
Sample:@echo off / echo hello world
在實際應用中我們會把這條命令和重定向符號(也稱為管道符號,一般用> >> ^)結合來實現輸入一
些命令到特定的文件中。
call命令
call命令用於從一個批處理程序調用另一個批處理程序,而不終止父批處理程序。call命令提示接受用作調用目標的標籤。如果再腳本或批處理文件外使用call命令,則其不會在命令行起作用。
語法:
call [[Drive:][Path] FileName [Bathparameters]] [:labe] [Arguments]]
參數:
[Drive:][Path] FileName
指定要調用的批處理程序的位置和名稱。FileName參數必須有.bat或.cmd擴展名。
Batchparameters
指定批處理程序所需的任何命令行信息,包括命令行選項、文件名、批處理參數(即從%0到%9)或變數(例如,%baud%)。
:Label
指定批處理程序要跳轉到的標籤。使用帶有該參數的call命令,可以創建新的批處理文件上下文,並將控制權交給指定標籤后的語句。首先遇到該處理文件的末尾時(在跳轉到標籤后),控制權將交還給call語句后的語句。第二次遇到批處理文件的末尾時,將推出批處理腳本。
Arguments
對於以:Label開始的批處理程序,指定要傳遞給其新實例的所有命令行信息,包括命令行選項、文件名、批處理參數(即從%1到%9)或變數(例如,%baud%)。
舉例:
要從其他批處理程序運行checknew.bat程序,請在父批處理程序中輸入以下命令:
----------------------------------------------------------------------------------------------------
call checknew
----------------------------------------------------------------------------------------------------
如果父批處理程序接受兩個批處理參數並且希望將這些參數傳遞給checknew.bat,則可以在父批處理程序中使用以下命令:
----------------------------------------------------------------------------------------------------
call checknew %1 %2
----------------------------------------------------------------------------------------------------
pause 命令
暫停命令。運行 Pause 命令時,將顯示下面的消息:
Press any key to continue. . .(或:請按任意鍵繼續. . .)
Sample:
@echo off
:begin
copy G:*.* d:\back
echo 請插入另一張光碟...
pause
goto begin
在這個例子中,驅動器 G 中磁碟上的所有文件均複製到d:\back中。顯示的註釋提示您將另一張光碟
盤放入驅動器 G 時,pause 命令會使程序掛起,以便您更換光碟,然後按任意鍵繼續處理。
goto 命令
跳轉命令。程序指針跳轉到指定的標籤,從標籤后的第一條命令開始繼續執行批處理程序。
語法:
goto label
參數:
label
指定所要轉向的批處理程序中的行。
Sample:
if {%1}=={} goto noparms
if {%2}=={} goto noparms(如果這裡的if、%1、%2你不明白的話,先跳過去,後面會有詳細的解釋
。)
@Rem check parameters if null show usage
:noparms
echo Usage: monitor.bat ServerIP PortNumber
goto end
標籤的名字可以隨便起,但是最好是有意義的字母啦,字母前加個:用來表示這個字母是標籤,goto
命令就是根據這個:來尋找下一步跳到到那裡。最好有一些說明這樣你別人看起來才會理解你的意圖啊。
說明
if、choice、for等命令是批處理文件中比較高級的命令
choice命令
使用choice命令,在批處理程序中,通過顯示提示信息並暫停批處理程序,用戶可以從一組選項鍵中進行選擇。
語法:
choice [/c [Choices]] [/n] [/cs] [/t Timeout /d Choice] [/m Text]
參數:
/c Choices
指定用戶選項鍵。顯示時,選項鍵由逗號分隔,出現在中括弧([])中,後面跟著問號。如果未指定「/c Choices 」,默認情況下,Choice顯示使用[Y,N]。
/n
隱藏用戶選項鍵。如果使用此命令行選項,將在提示符之前出現消息正文,選項仍處於啟用狀態。
/cs
指定用戶選項鍵必須區分大小寫。默認情況下,用戶選項鍵不區分大小寫。
/t Timeout /d Choice
指定在默認為指定鍵之前choice暫停指定的秒數。表2描述了/t命令行選項的值。
描 述
Timeout
要暫停的秒數。可接受的值介於0~9 999。如果使用0,choice在默認為指定鍵之前不暫停
/d Choice
指定Timeout秒數之後的默認選擇。使用的字元必須在由/c Choice指定的選擇集中。如果使用此命令行選項,還必須同時指定/t Timeout
指定要在提示符之前顯示的文字。如果使用包括命令行選項字元(即「/」)作為提示符之前的一部分文字,必須用引號將該文字引起來。如果未指定任何文字,choice將只顯示提示符。
舉例:
----------------------------------------------------------------------------------------------------
@echo off
choice /C dme /m "defrag,mem,end"
if errorlevel 3 goto end //應先判斷數值最高的錯誤碼
if errorlevel 2 goto mem
if errotlevel 1 goto defrag
:defrag
c:\dos\defrag
goto den
:end
echo good bye
----------------------------------------------------------------------------------------------------
此文件運行后,將顯示:
defrag,men,end[D,M,E]?用戶可選擇d m e
然後if語句將做出判斷,d表示執行標號為defrag的程序段,m表示執行標號為mem的程序段,c表示執行標號為end的程序段,每個程序段最後都以goto end將程序跳到end標號處,然後程序將顯示good bye,程序結束。

for命令

for命令用於對一組文件中的每個文件運行指定的命令
語法:
for [%Variable | %%Variable ] in (Set) do Command [CommandLineoptions]
參數:
[%Variable | %%Variable ]
必需參數,代表可替換的參數。使用%Variable通過命令提示符執行for命令。使用%%Variable在批處理文件中執行for命令。變數要區分大小寫,並且必須用Alpha值表示,例如%A、%B或%C。
(set)
必需參數,指定要用指定命令處理的一個或多個文件、目錄、數值範圍以及文本字元串。需要括弧。
Command
必需參數,指定要對包括在指定的(Set)中每個文件、目錄、數值範圍以及文本字元串所執行的命令。
CommandLineOptions
指定要與所指定命令一起使用的任何命令行選項。
循環命令只要條件符合,它將多次執行同一命令,同時for的循環裡面還可以套用for再進行循環。
舉例:
for %%c in (*.bat*.txt)
do type %%c
含義:如果以.bat或.txt結尾的文件,則顯示文件的內容。
上一篇[名稱空間]    下一篇 [JBuilder]

相關評論

同義詞:暫無同義詞