Windows批處理簡介

一、什麼是批處理 

批處理(Batch),也稱爲批處理腳本。顧名思義,批處理就是對某對象進行批量的處理。目前比較常見 
的批處理包含兩類:DOS批處理和PS批處理。PS批處理是基於強大的圖片編輯軟件Photoshop的,用來批量 
處理圖片的腳本;而DOS批處理則是基於DOS命令的,用來自動地批量地執行DOS命令以實現特定操作的腳本 
。這裏要講的就是DOS批處理。
批處理是一種簡化的腳本語言,它應用於DOS和Windows系統中,它是由DOS或者Windows系統內嵌的命 
令解釋器(通常是COMMAND.COM或者CMD.EXE)解釋運行。類似於Unix中的Shell腳本。批處理文件具有.bat 
或者.cmd的擴展名,其最簡單的例子,是逐行書寫在命令行中會用到的各種命令。更復雜的情況,需要使 
用if,for,goto等命令控制程序的運行過程,如同C,Basic等高級語言一樣。如果需要實現更復雜的應用 
,利用外部程序是必要的,這包括系統本身提供的外部命令和第三方提供的工具或者軟件。
批處理文件,或稱爲批處理程序,是由一條條的DOS命令組成的普通文本文件,可以用記事本直接編輯 
或用DOS命令創建,也可以用DOS下的文本編輯器Edit.exe來編輯。在“命令提示”下鍵入批處理文件的名 
稱,或者雙擊該批處理文件,系統就會調用Cmd.exe運行該批處理程序。
一般情況下,每條命令佔據一行;當然也可以將多條命令用特定符號(如:&、&&、|、||等)分隔後 
寫入同一行中;還有的情況就是像if、for等較高級的命令則要佔據幾行甚至幾十幾百行的空間。系統在解 
釋運行批處理程序時,首先掃描整個批處理程序,然後從第一行代碼開始向下逐句執行所有的命令,直至 
程序結尾或遇見exit命令或出錯意外退出。

 二、簡單批處理命令簡介

【 echo 命令 】 
打開回顯或關閉請求回顯功能,或顯示消息。如果沒有任何參數,echo 命令將顯示當前回顯設置。 
語法 
echo [{on|off}] [message] 
Sample:@echo off / echo hello world 
在實際應用中我們會把這條命令和重定向符號(也稱爲管道符號,一般用> >> ^)結合來實現輸入一 
些命令到特定的文件中。

【 rem 命令 】
註釋命令,類似於在C語言中的,它並不會被執行,只是起一個註釋的作用,便於別人閱讀 
和你自己日後修改。 
Rem Message 
Sample:@Rem Here is the description. 

【 pause 命令 】
暫停命令。運行 Pause 命令時,將顯示下面的消息:
Press any key to continue. . .(或:請按任意鍵繼續. . .)
Sample: 
@echo off 
:begin 
copy G:*.* d:/back 
echo 請插入另一張光盤...
pause 
goto begin 
在這個例子中,驅動器 G 中磁盤上的所有文件均複製到d:/back中。顯示的註釋提示您將另一張光盤 
盤放入驅動器 G 時,pause 命令會使程序掛起,以便您更換光盤,然後按任意鍵繼續處理。

【 call 命令 】
從一個批處理程序調用另一個批處理程序,並且不終止父批處理程序。call 命令接受用作調用目標的 
標籤。如果在腳本或批處理文件外使用 Call,它將不會在命令行起作用。 
語法 
call [[Drive:][Path] FileName ] [:label [arguments]] 
參數 
[Drive:}[Path] FileName 
指定要調用的批處理程序的位置和名稱。

【 start 命令 】
調用外部程序,所有的DOS命令和命令行程序都可以由start命令來調用。
如:start calc.exe 即可打開Windows的計算器。
常用參數: 
MIN 開始時窗口最小化 
SEPARATE 在分開的空間內開始 16 位 Windows 程序 
HIGH 在 HIGH 優先級類別開始應用程序 
REALTIME 在 REALTIME 優先級類別開始應用程序 
WAIT 啓動應用程序並等候它結束 
parameters 這些爲傳送到命令/程序的參數 
執行的應用程序是 32-位 GUI 應用程序時,CMD.EXE 不等應用程序終止就返回命令提示。如果在命令 
腳本內執行,該新行爲則不會發生。

【 goto 命令 】
跳轉命令。程序指針跳轉到指定的標籤,從標籤後的第一條命令開始繼續執行批處理程序。 
語法:goto label (label是參數,指定所要轉向的批處理程序中的行。) 
Sample: 
if {%1}=={} goto noparms 
if {%2}=={} goto noparms(如果這裏的if、%1、%2你不明白的話,先跳過去,後面會有詳細的解釋 
。) 
@Rem check parameters if null show usage 
:noparms 
echo Usage: monitor.bat ServerIP PortNumber 
goto end 
標籤的名字可以隨便起,但是最好是有意義的字母啦,字母前加個:用來表示這個字母是標籤,goto 
命令就是根據這個:來尋找下一步跳到到那裏。最好有一些說明這樣你別人看起來纔會理解你的意圖啊。

【 set 命令 】
顯示、設置或刪除變量。
顯示變量:set 或 set s 前者顯示批處理當前已定義的所有變量及其值,後者顯示所有以s開頭的變量及值。
設置變量:set aa=abcd 此句命令便可向變量aa賦值abcd。如果變量aa已被定義,則aa的值被修改爲abcd;若aa尚未定義,則此句命令即可定義新的變量aa,同時爲變量aa賦予初始值abcd。
刪除變量:set aa= 此句命令即可刪除變量aa。若變量aa已被定義,則刪除變量aa;若aa尚未定義,則此句命令爲實質意義。
需要說明的是,批處理中的變量是不區分類型的,不需要像C語言中的變量那樣還要區分int、float、char等。比如執行set aa=345後,變量aa的值既可以被視爲數字345,也可以被視爲字符串345。
set命令具有擴展功能,如用作交互輸入、字符串處理、數值計算等,屬於高級命令範疇。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章