好了,用批處理,就可以實現將這些麻煩的操作簡單化,首先我們編寫一個runwps.bat批次檔,內容如下:
@echo off
c:
cd\wps
spdos
py
wbx
wps
cd\
以後,我們每次進入wps,只需要運行runwps這個批次檔即可。
常用命令
echo、@、call、pause、rem(小技巧:用::代替rem)是批次檔最常用的幾個命令,我們就從他們開始學起。
echo 表示顯示此命令後的字元
echo off 表示在此語句後所有啟動並執行命令都不顯示命令列本身
@與echo off相象,但它是加在每個命令列的最前面,表示運行時不顯示這一行的命令列(只能影響當前行)。
call 調用另一個批次檔(如果不用call而直接調用別的批次檔,那麼執行完那個批次檔後將無法返回當前檔案並執行當前檔案的後續命令)。
pause 運行此句會暫停批處理的執行並在螢幕上顯示Press any key to continue...的提示,等待使用者按任意鍵後繼續
rem 表示此命令後的字元為解釋行(注釋),不執行,只是給自己今後參考用的(相當於程式中的注釋)。
例:test.bat的內容如下(注意,用if errorlevel判斷傳回值時,要按傳回值從高到低排列):
@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 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 %%variable IN (set) DO command [command-parameters]
接著再建立一個test2.bat檔案,內容如下:
@ECHO OFF
IF EXIST \%1 TYPE \%1
IF NOT EXIST \%1 ECHO \%1 does not exist
執行:
C:\>TEST2 AUTOEXEC.BAT
該命令運行結果同上。
說明:
(1) IF EXIST 是用來測試檔案是否存在的,格式為
IF EXIST [路徑+檔案名稱] 命令
(2) test2.bat檔案中的%1是參數,DOS允許傳遞9個批參數資訊給批次檔,分別為%1~%9(%0表示test2命令本身) ,這有點象編程中的實參和形參的關係,%1是形參,AUTOEXEC.BAT是實參。
3) 更進一步的,建立一個名為TEST3.BAT的檔案,內容如下:
@echo off
IF "%1" == "A" ECHO XIAO
IF "%2" == "B" ECHO TIAN
IF "%3" == "C" ECHO XIN
如果運行:
C:\>TEST3 A B C
螢幕上會顯示:
XIAO
TIAN
XIN
如果運行:
C:\>TEST3 A B
螢幕上會顯示
XIAO
TIAN
在這個命令執行過程中,DOS會將一個Null 字元串指定給參數%3。
2、IF-ERRORLEVEL
建立TEST4.BAT,內容如下:
@ECHO OFF
XCOPY C:\AUTOEXEC.BAT D:IF ERRORLEVEL 1 ECHO 檔案拷貝失敗
IF ERRORLEVEL 0 ECHO 成功拷貝檔案
然後執行檔案:
C:\>TEST4
如果檔案拷貝成功,螢幕就會顯示“成功拷貝檔案”,否則就會顯示“檔案拷貝失敗”。
IF ERRORLEVEL 是用來測試它的上一個DOS命令的傳回值的,注意只是上一個命令的傳回值,而且傳回值必須依照從大到小次序順序判斷。
因此下面的批次檔是錯誤的:
@ECHO OFF
XCOPY C:\AUTOEXEC.BAT D:\
IF ERRORLEVEL 0 ECHO 成功拷貝檔案
IF ERRORLEVEL 1 ECHO 未找到拷貝檔案
IF ERRORLEVEL 2 ECHO 使用者通過ctrl-c中止拷貝操作
IF ERRORLEVEL 3 ECHO 預置錯誤阻止檔案拷貝操作
IF ERRORLEVEL 4 ECHO 拷貝過程中寫盤錯誤