?????????????????????????????????????????
??????????????????????????????????????????????????? 張小星
?
一.什么是批處理文件
??????? 批處理文件( BATCHFILE ,簡(jiǎn)稱(chēng) BAT 文件)是一種在 DOS 下最常用的可執(zhí)行文件。它具有靈活的操縱性,可適應(yīng)各種復(fù)雜的計(jì)算機(jī)操作(指在 DOS 下)。所謂的批處理,就是按規(guī)定的順序自動(dòng)執(zhí)行若干個(gè)指定的 DOS 命令或程序。即是把原來(lái)一個(gè)一個(gè)執(zhí)行的命令匯總起來(lái),成批的執(zhí)行。
?
二.如何編輯一個(gè) BAT 文件
??????? 編輯一個(gè) BAT 文件是一件很簡(jiǎn)單的事,任何一個(gè)能編輯 ASCII 字符的程序都可以用來(lái)編輯或創(chuàng)建 BAT 文件。例如 DOS 下的 EDIT 。 COM 、 WPS 文字處理系統(tǒng), WINDOWS 下的 NOTEPAD 等。最簡(jiǎn)單的方法是用 COPY CON [ 主文件名。 BAT] 來(lái)創(chuàng)建 BAT 文件,在創(chuàng)建完后按 CTRL+Z 鍵來(lái)結(jié)束。但這種方法的缺點(diǎn)是只能寫(xiě),不能改。
??????? BAT 文件的編寫(xiě)規(guī)則也很簡(jiǎn)單,即一條命令單獨(dú)占用一行,不能將兩條命令寫(xiě)在同一行中。 ??????? 如果沒(méi)有轉(zhuǎn)移語(yǔ)句, BAT 文件將順序執(zhí)行每一條語(yǔ)句。
?
三. BAT 常用命令詳解
1 . ? ECHO 和 @?
???? 作用 ?????????? 顯示或隱藏屏幕顯示,在屏幕上顯示文本信息。
???? 使用方法 ?????? ECHO? ON | OFF?? 使整個(gè)屏幕顯示或不顯示
??????????????????? @????? ??????????? 使一句語(yǔ)句不在屏幕上顯示
???? 例 ??? @echo off??? (? 使整個(gè)屏幕不顯示,包括該語(yǔ)句本身 )
???? 例 ??? echo? 這句話(huà)將顯示在屏幕上
2 . ? REM
???? 作用 ?????????? 給命令加上注釋?zhuān)挂痪湔Z(yǔ)句失去作用
???? 使用方法 ?????? REM [ 注釋語(yǔ)句 ]
???? 例 ???????????? REM ?DEL*.*??? ( 不執(zhí)行刪除命令 )
3 . ? PAUSE
???? 作用 ???????? 暫停命令的執(zhí)行,主要用于 BAT 的調(diào)試階段。暫停時(shí)可按 ??????????????????????????????????????? ?????????????????????????????????????????????ctrl+break 或 ctrl+c 來(lái)停止 BAT 的執(zhí)行。
???? 使用方法 ?????? PAUSE
???? 例 ??????? ?????PAUSE? [ 文本信息 ]??? (暫停并顯示文本信息)
4 . ? %0-%9 批處理參數(shù)
???? 作用 ?????????? 代替命令中的參數(shù)
???? 使用方法 ?????? < 命令名 >? [ 批處理參數(shù) 1] [ 批處理參數(shù) 2] ···
???? 例 ???????????? 有批處理文件名為 GO 。 BAT ,清單如下
??????????????????? @echo off
??????????????????? echo this is a demo bat
??????????????????? cd? %1
???????????????????
??????????????????? 當(dāng)鍵入文件名及參數(shù) c:\ 時(shí) ??? go c:\
??????????????????? 則效果等同于 cd c:\
5.?? ?SHIFT
???? 作用 ?????????? 更新批處理參數(shù)所代替的命令參數(shù),每運(yùn)行一次,命令參數(shù)前移一位。
???? 使用方法 ?????? shift
???? 例 ??????? ????? 有批處理文件名為 DEMO 。 BAT ,清單如下
??????????????????? @echo off
??????????????????? if “%1”=”” goto end?? ( 有關(guān) if 語(yǔ)句,參見(jiàn)下文 )
??????????????????? rem 判斷 %1 所代表的是否為空,為空則轉(zhuǎn)到 end 語(yǔ)句
??????????????????? dir %1
??????????????????? Shift
??????????????????? : end
???????????????????
??????????????????? 當(dāng)鍵入 ?? demo? a: b: c: d: 時(shí),效果為列 A 、 B 、 C 、 D 四個(gè)磁盤(pán)的目錄
6 . ? GOTO????????
???? 作用 ?????????? 轉(zhuǎn)到指定段。
???? 使用方法 ?????? goto?? < 段名 >
???? 例 ??????? ?????goto? start?? ( 轉(zhuǎn)到 start 段,其中 start 為段名,須加“:”以便和命令名相區(qū)別。 )
7.??? IF
???? 作用 ?????????? 用于條件判斷
???? 使用方法 ?????? 1. IF[NOT] EXIST < 文件名 > < 命令 >
??????????????????? 2. IF [NOT] ?< 字符串 1 >=< 字符串 2>
??????????????????? 3. IF ERRORLEVEL (N) < 命令 >
???? 作用 ?????????? 1. 如果 ( 不 ) 存在所選文件則執(zhí)行所帶命令
??????????????????? 2. 如果字符串 1( 不 ) 等于字符串 2, 則執(zhí)行所帶命令
??????????????????? 3. 如果命令執(zhí)行后的錯(cuò)誤等級(jí)碼是(不是) N , 那么執(zhí)行所帶命令。
???? 例 ??????? ?????1.if exist demo.bat echo this is a demo ( 如果 demo.bat 文件存在 , 顯示 this is a demo)
??????????????????? 2.if “x”=”1” echo the answer is right? ( 如果 x=1, 顯示 the answer is right)
???????? ???????????3.if errorlevel 2 echo good luck?? ( 如果錯(cuò)誤碼為 2, 顯示 good luck)
8.?? FOR
作用 ??????????? 用一個(gè)臨時(shí)參數(shù)代替括號(hào)中的對(duì)象
使用方法 ??????? for <%% 參數(shù)名 > in <( 對(duì)象 1 、對(duì)象 2 ··· )> do < 命令 >
例 ????????????? for %% d in (a: b: ) do format %%d? ( 效果等同于格式化 A 盤(pán)和 B 盤(pán) )
9.?? SET???????????
作用 ??????? ???? 設(shè)置環(huán)境變量
使用方法 ??????? set < 變量名 >=< 對(duì)象 >
例 ????????????? set ff=45? ( 使變量 ff 的值為 45)
10 . CHOICE
作用 ??????????? 為進(jìn)行交互式選擇提供手段。
使用方法 ??????? choice [/c: 字母 ] [/n ] [/s ] [/t: 字母,秒數(shù) ] [ 說(shuō)明信息 ]
??????????????? [/c:/ 字母 ] :指定那些字母用于選擇操作,每個(gè)字母之間用逗號(hào)隔開(kāi)。缺省為 y,n
??????????????? [/n] :不顯示供選擇的字母
??????????????? [/s:] :對(duì)輸入的字母區(qū)分大小寫(xiě)
??????????????? [/t: 字母,秒數(shù) ] :限定選擇所用的秒數(shù)( 0-99 )過(guò)時(shí)則以指定的字母作為選擇
??????????????? [ 說(shuō)明信息 ] :顯示其后的信息用于說(shuō)明
??????????????? choice 和 if 的第三種用法可配合使用,具體方法是,當(dāng)你選第一個(gè)字母時(shí), errorlevel 為 1 ,第二個(gè)為二···
例 ????????????? choice [/c: a,b,c]
?????? ?????????if errorlevel 3 echo your choice is c
??????????????? if errorlevel 2 echo your choice is b
??????????????? if errorlevel 1 echo your choice is a
?
四.結(jié)語(yǔ)
???????? 要編好 BAT 文件,關(guān)鍵在于多實(shí)踐。要將 BAT 應(yīng)用于日常工作中。在不少軟件中都有 BAT ,有興趣可以拿他們看一看,以提高自己的編程技巧。只要認(rèn)真的學(xué),你不久就會(huì)發(fā)現(xiàn) BAT 為你的計(jì)算機(jī)管理帶來(lái)的巨大方便。