DOS批處理檔案

2021-08-25 17:05:47 字數 3389 閱讀 4711

dos下的可執行檔案有三種,分別是exe,com和bat。其中,exe和com檔案都是二進位制形式的,只有bat檔案是文字形式的,可以直接閱讀。因此,bat檔案和以上二進位制可執行檔案相比,內容要簡單的多。這些檔案內包含著dos命令的集合,通常叫作批處理檔案。批處理檔案的組成雖然比較簡單,但其用處非常大,使用也比較廣泛。比如每次都執行一些相同的命令,您一定會覺得非常麻煩,而放在批處理檔案中執行的話則輕鬆得多。autoexec.bat就是乙個特殊的批處理檔案,它在dos的啟動時自動執行,在系統的配置中發揮著非常大的作用。因此,要學好dos,就要學好批處理檔案。下面介紹批處理檔案的命令及其使用。

dos自帶的批處理命令:

@:將這個符號放在批檔案中其它命令的前面,執行時將不顯示命令本身。

如@echo off命令就在批檔案首經常用到。

call:從乙個批檔案中呼叫另乙個批檔案,呼叫完後繼續執行原來的批檔案。

用法:call [批檔名]

注:也可以使用command /c命令完成同樣的操作。

choice:選擇命令。這是乙個dos外部命令,但它主要用在批檔案中。

choice命令執行後將提示可選擇的專案,這時通過乙個按鍵來選則。

用法:choice:[/c[:]按鍵表] [/n] [/s] [/t[:]選擇值,秒數] [顯示文字]

其中,/c表示可選則的按鍵,/n表示不要顯示提示資訊,/s表示大小寫字元敏感方式,/t表示若在批定的時間內沒有選則的話,自動執行/c中定義的某個選擇值。顯示文字是choice命令執行時的提示資訊。選擇結果將用errorlevel值來表示。

echo:顯示指定的資訊。通常顯示在螢幕上。

如echo hello將在螢幕上顯示hello的字樣。

另外,echo on|off用來設定在批檔案執行時是否顯示命令本身。而echo off與@的意思一樣,但它是乙個單獨的命令,而不能像@那樣放在其它命令之前。

for:對於指定的檔案執行相應的命令。

大家知道,dos下許多命令支援萬用字元,如?和*,可以一次指定一批檔案,非常方便。然而,並非所有的dos命令都支援萬用字元,如type(檔案內容顯示命令)就不支援。有了for命令就沒有關係了,利於它可以使type命令可以一次顯示多個檔案。

用法:for %變數名 in (檔案集) do 命令 [命令引數]

注:以上是for命令的固定形式,in和do的位置必須正確,否則將提示語法錯誤。

如for %f in (*.*) do type %f命令就可以實現type命令一次顯示多個檔案。

注:%f是變數名,也可用%g等代替,但前後必須一致。在批檔案中用%%f代替。

goto:轉到批檔案內部的某個標號下執行。

大家知道,在程式設計中往往需要重複或跳轉到某個地方繼續執行,如basic語言中的goto命令。批檔案中的goto命令也可以完成類似的功能。

用法:goto [標號名]

其中,標號名是可以隨意設定的,如hello等。設定標號用「:」符號,如「:hello」,這時用goto hello命令將轉到「:hello」所在的位置繼續執行批檔案。

if:條件判斷命令。這是一項很有用的批處理命令。

用法1:if [not] exist 檔名 命令 [命令引數]

意義:如果[不]存在某個檔案將執行某個命令。

用法2:if [not] errorlevel 錯誤返回代號 命令 [命令引數]

意義:如果錯誤返回代號[不]大於或等於指定的代號將執行某個命令。

其中,errorlevel表示錯誤返回代號,很有用。對於很多dos命令,由於執行的結果不同(如執行成功,執行失敗,或被使用者中斷等),這些命令會返回不同的代號,以表示不同的結果。if errorlevel命令就根據這個不同結果而產生的不同代號來執行不同的命令,通常用在某條命令之後。如if errorlevel 1 echo ok!表示如果當前的錯誤返回代號大於或等於1時將在螢幕上顯示「ok!」的字樣。

用法3:if [not] 字串1==字串2 命令 [命令引數] 

意義:當字串1和字串2[不]相等的時候執行某個命令。

pause:暫停批檔案的執行,並顯示「按任意鍵繼續」的字樣。

rem:新增註解。用於增加檔案可讀性,將不被執行。也可以用::來代替。

shift:在批檔案中改變可替換引數的位置。

可替換引數是一種特殊的引數,只能用在批檔案中。這些引數是由使用者在執行批處理命令時輸入的。比如,我們執行dir /s /w命令,其中dir是命令名,/s和/w是它的執行引數。在批檔案中,這些命令引數將被分別賦予到可替換引數中,如/s就成的%1,/w就可了%2,以至類推,而命令本身則被賦予%0中。批檔案就是利用可替換引數對執行時輸入的引數來進行操作的。比如現在有個批處理檔案叫myfile.bat,在命令列下執行myfile.bat yes,於是%0的值就是myfile.bat,%1的值就是「yes」,可以在此批檔案中用if等命令判斷出%1等引數的值,然後根據這些值的不同執行不同的操作,如if "%1"=="yes" goto yes。

shift命令不帶任何引數,執行結果是將%0的值換成原%1的值,而原%1的值變成的原%2的值,以此類推。注意它的不可逆轉性。因為批處理檔案執行時的執行引數可能很多,可能會超過10個,而可替換引數只能從%0到%9,若想取得%9以後的引數值,只能使用shift命令。這時,整個引數列將向前推。

下面就要談批處理檔案的製作了。其實製作批處理檔案並不難,只要掌握了方法就行了。隨著您操作次數的增多,您會覺得越來越容易的。

首先使用乙個文字編輯器,如dos自帶的edit命令或其它的編輯工具,如pedit等新建乙個空白檔案(當然,用copy con命令直接建立也行),然後在其中根據您想完成的功能輸入批處理命令。如果您只是想執行一些的dos命令的集合,則按順序在每行輸入乙個dos命令就行了。但如果您是想完成一些更複雜的操作,就需要以上的批處理命令或上述的批處理工具了。

@echo off

break off

clsset c=0

writext 10 1 wait...

be delay 4

:loop

writext 10 9 %c%%%?completed.

count c

if not %c%==101 goto loop

echo.

set c=

kpush /f

break on

其中,我用到了writext,count,be和kpush,這些都是批處理工具。writext是echo的增強工具,可以自定義顯示的效果。count是變數的計算工具,如原來c的值為1,執行count c後c的值就為2。be是個強大的批處理增強工具,在norton utilties 8.0中帶有。kpush是鍵盤緩衝工具。

DOS批處理檔案

dos下的可執行檔案有三種,分別是exe,com和bat。其中,exe和com檔案都是二進位制形式的,只有bat檔案是文字形式的,可以直接閱讀。因此,bat檔案和以上二進位制可執行檔案相比,內容要簡單的多。這些檔案內包含著dos命令的集合,通常叫作批處理檔案。批處理檔案的組成雖然比較簡單,但其用處非...

DOS批處理檔案

dos下的可執行檔案有三種,分別是exe,com和bat。其中,exe和com檔案都是二進位制形式的,只有bat檔案是文字形式的,可以直接閱讀。因此,bat檔案和以上二進位制可執行檔案相比,內容要簡單的多。這些檔案內包含著dos命令的集合,通常叫作批處理檔案。批處理檔案的組成雖然比較簡單,但其用處非...

DOS 批處理檔案

dos 下的可執行檔案有三種,分別是exe,和bat。其中,exe和 檔案都是二進位制形式的,只有bat檔案是文字形式的,可以直接閱讀。因此,bat檔案和以上二進位制可執行檔案相比,內容要簡單的多。這些檔案內包含著dos命令的集合,通常叫作批處理檔案。批處理檔案的組成雖然比較簡單,但其用處非常大,使...