批處理文件指南
後綴是
bat
的文件就是批處理文件,是一種文本文件。簡單的說,它的做用就是自動的連續執行多條命令,批處理文件的內容就是一條一條的命令。那它有什麼用呢?
好比,在啓動
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
等功能。
批處理文件的內容爲
:
文件表示:
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.sys edit 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
設置臨時目錄