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命令。這時,整個引數列將向前推。
@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
DOS批處理檔案
dos下的可執行檔案有三種,分別是exe,com和bat。其中,exe和com檔案都是二進位制形式的,只有bat檔案是文字形式的,可以直接閱讀。因此,bat檔案和以上二進位制可執行檔案相比,內容要簡單的多。這些檔案內包含著dos命令的集合,通常叫作批處理檔案。批處理檔案的組成雖然比較簡單,但其用處非...
DOS 批處理檔案
dos 下的可執行檔案有三種,分別是exe,和bat。其中,exe和 檔案都是二進位制形式的,只有bat檔案是文字形式的,可以直接閱讀。因此,bat檔案和以上二進位制可執行檔案相比,內容要簡單的多。這些檔案內包含著dos命令的集合,通常叫作批處理檔案。批處理檔案的組成雖然比較簡單,但其用處非常大,使...
DOS批處理檔案
dos下的可執行檔案有三種,分別是exe,com和bat。其中,exe和com檔案都是二進位制形式的,只有bat檔案是文字形式的,可以直接閱讀。因此,bat檔案和以上二進位制可執行檔案相比,內容要簡單的多。這些檔案內包含著dos命令的集合,通常叫作批處理檔案。批處理檔案的組成雖然比較簡單,但其用處非...