成批處理語句

成批處理就是對某對象進行批量的處理。成批處理語句是指在這個過程中使用到的語句,通常被認為是一種簡化的腳本語言。

基本介紹

  • 中文名:成批處理語句
  • 外文名:Batch processing statement
  • 類型:計算機科學
  • 學科:跨學科
  • 性質:語句
  • 目的:進行成批處理
介紹,語句,常用命令,符號簡介,命令釋義,字元串,

介紹

成批處理就是對某對象進行批量的處理。批處理是一種簡化的腳本語言,也稱作宏。通常被認為是一種簡化的腳本語言,它套用於DOSWindows系統中。批處理檔案的擴展名為bat。它套用於DOS和Windows系統中,它是由DOS或者Windows系統內嵌的命令解釋器(通常是COMMAND. COM或者CMD.EXE)解釋運行。DOS批處理則是基於DOS命令的,用來自動地批量地執行DOS命令以實現特定操作的腳本。更複雜的情況,需要使用if、for、goto等命令控制程式的運行過程,如同CBasic等高級語言一樣。

語句

常用命令

1、echo 命令
打開回顯或關閉請求回顯功能,或顯示訊息。如果沒有任何參數,echo批處理與在線上處理命令將顯示當前回顯設定。
語法:echo [{on|off}] [message]
Sample:@echo off / echo hello world
在實際套用中我們會把這條命令和重定向符號(也稱為管道符號,一般用> >> ^)結合來實現輸入一些命令到特定的檔案中。
2、rem 命令
注釋命令,類似於在C語言中的/*--------*/,它並不會被執行,只是起一個注釋的作用,只有在編輯批處理時才會被看到,主要用於方便修改。
:: 也具有rem的功能,但::和rem還是有區別的,當關閉回顯時,rem和::後的內容都不會顯示。順序批處理但是當打開回顯時,rem後的內容會顯示出來,然而::後的內容仍然不會顯示。
Rem [注釋內容]
示例:Rem 你好。
3、pause 命令
暫停命令。運行 Pause 命令時,將顯示下面的訊息:
Press any key to continue. . .(或:請按任意鍵繼續. . .)
示例:
@echo off
:begin
copy G:*.* d:\back
echo 請插入另一張光碟...
pause
goto begin
在這個例子中,驅動器 G 中磁碟上的所有檔案均複製到d:\back中。顯示的注釋提示您將另一張光碟盤放入驅動器 G 時,pause 命令會使程式掛起,以便您更換光碟,然後按任意鍵繼續處理。
4、call 命令
從一個批處理程式調用另一個批處理程式,並且不終止父批處理程式。call批處理功能界面命令接受用作調用目標的標籤。如果在腳本或批處理檔案外使用 Call,它將不會在命令行起作用。
語法:call [路徑檔案名稱] [標籤]]
參數:[Drive:}[Path] FileName
指定要調用的批處理程式的位置和名稱。
5、start 命令
調用外部程式,所有的DOS命令和命令行程式都可以由start命令來調用。
如:startcalc.exe即可打開Windows的計算器。
常用參數:MIN 開始時視窗最小化
SEPARATE 在分開的空間內開始 16 位 Windows 程式
HIGH 在 HIGH 優先權類別開始應用程式
REALTIME 在 REALTIME 優先權類別開始應用程式
WAIT 啟動應用程式並等候它結束
parameters 這些為傳送到命令/程式的參數
執行的應用程式是 32-位 GUI 應用程式時,CMD.EXE 不等應用程式
常見批處理案例:終止就返回命令提示。如果在命令腳本內執行,該新行為則不會發生。

符號簡介

1、回顯禁止 @
表示不顯示@後面的命令,在入侵過程中(例如使用批處理來格式化敵人批處理過程的硬碟)自然不能讓對方看到你使用的命令啦。
@用法舉例:通過運行批處理檔案對比pause和@pause命令即可明了@的效果。
2、重定向1 >;與>>
將輸出信息重定向到指定的設備或檔案。系統默認輸出到顯示器。
如:echo aaaaa>a.txt 即可將本在顯示器上顯示的信息aaaaa輸出到檔案a.txt中,螢幕上沒有任何顯示。如果檔案a.txt本來已經存在,該命令將首先擦除a.txt中的所有信息,然後寫入信息aaaaa;若a.txt本來就不存在,該命令即可新建一個a.txt檔案,並寫入信息aaaaa。
echo aaaaa>>a.txt 類似於echo aaaaa>a.txt。區別在於:如果a.txt本已存在,>a.txt會擦除a.txt中的原有內容,而>>a.txt並不擦除原有內容,僅在a.txt檔案的末尾添加信息aaaaa。a.txt不存在時,二者沒有差別。
需要注意的是,因為數字的特殊性,在echo輸出數字時,請在後面加上空格,例如:echo 9313 >a.txt,否則有可能造成輸出不完整。
3、重定向2 <
將輸入信息來源重定向為指定的設備或檔案。系統默認從顯示器讀取輸入信息。
重定向使用舉例:
@echo off
echo abcdefg——這是檔案a.txt中的信息>a.txt
echo 請任意輸入字元,以回車結束:
set /p ifo=cls
echo 【 從螢幕獲得的輸入信息 】
echo %ifo%
set /p ifo=<a.txt
echo 【 從檔案a.txt獲得的輸入信息 】
echo %ifo%
pause>nul
4、管道符號 |
將管道符號前面命令的輸出結果重定向輸出到管道符號後面的命令中去,作為後面命令的輸入。使用格式為:command_1|command_2
管道符號使用舉例:
echo aaaa>a.txt
del /p a.txt
pause
@echo off
echo aaaa>a.txt
echo y|del /p a.txt
pause
對比以上兩個批處理執行結果,讀者即可明白管道符的用法和效果。
需要說明的是,上面del命令添加開關/p只是為了讓讀者明白管道符號的使用方法,實際刪除檔案時不加/p開關即可實現無提示直接刪除。
5、轉義符 ^
將特殊符號轉化為一般符號,即剝離特殊符號的特殊地位。特殊符號指:| & > <
比如,如果我們想輸出符號“>;”,直接用命令 echo > 是不行的,必須修改為 echo ^>;。其餘幾個特殊符號類似需要有同樣的處理。
轉義字元使用舉例:
@echo off
echo aaaa>a.txt
echo 第一句echo執行完畢
echo aaaa^>a.txt
echo 第二句echo執行完畢
pause
比較上面的兩句echo,第一句echo將信息aaaa輸出到了檔案a.txt,而第二句echo則在直接螢幕上顯示出aaaa>a.txt
6、邏輯命令符
邏輯命令符包括:&;、&&;、||
&-它的作用是用來連線n個DOS命令,並把這些命令按順序執行,而不管是否有命令執行失敗;
&&-當&&;前面的命令成功執行時,執行&&;後面的命令,否則不執行;
||-當||前面的命令失敗時,執行||後面的命令,否則不執行。
@echo off
echo ^|^|
reg add HKCU /v try /f||echo **失敗**
reg add HKCU1 /v try /f||echo **成功**
echo ^&^&
reg delete HKCU /v try /f&&echo **成功**
reg delete HKCU /v try /f&&echo **失敗**
echo ^&
reg delete HKCU /v try /f&echo **也許成功**
reg delete HKCU /v try /f&echo **也許失敗**
pause
執行reg add或reg delete後,系統會給出執行結果;我們通過echo命令也給出了“執行結果”。對比系統和我們自己給出的結果,既可以驗證邏輯命令的判斷機理。

命令釋義

1、資料夾管理
cd 顯示當前目錄名或改變當前目錄。
md 創建目錄。
rd 刪除一個目錄。
dir 顯示目錄中的檔案和子目錄列表。
tree 以圖形顯示驅動器或路徑的資料夾結構。
path 為執行檔顯示或設定一個搜尋路徑。
copy 複製檔案和目錄樹。
2、檔案管理
type 顯示文本檔案的內容。
copy 將一份或多份檔案複製到另一個位置。
del 刪除一個或數個檔案。
move 移動檔案並重命名檔案和目錄。(Windows XP Home Edition中沒有)
ren重命名檔案。
replace 替換檔案。
attrib 顯示或更改檔案屬性
find 搜尋字元串。
fc 比較兩個檔案或兩個檔案集並顯示它們之間的不同
3、網路命令
ping 進行網路連線測試、名稱解析
net 網路命令集及用戶管理
ipconfig顯示、修改TCP/IP設定
msg 給用戶傳送訊息
arp 顯示、修改區域網路的IP位址-物理地址映射列表
4、系統管理
at 安排在特定日期和時間運行命令和程式
shutdown立即或定時關機或重啟
tskill 結束進程
taskkill結束進程(比tskill高級,但WinXPHome版中無該命令)
tasklist顯示進程列表(Windows XP Home Edition中沒有)
sc 系統服務設定與控制
reg 註冊表控制台工具
powercfg控制系統上的電源設定
對於以上列出的所有命令,在cmd中輸入命令+/?即可查看該命令的幫助信息。如find /?

字元串

批處理有著具有非常強大的字元串處理能力,其功能絕不低於C語言裡面的字元串函式集。批處理中可實現的字元串處理功能有:截取字元串內容、替換字元串特定欄位、合併字元串、擴充字元串等功能。下面對這些功能一一進行講解。
1、截取字元串
截取字元串可以說是字元串處理功能中最常用的一個子功能了,能夠實現截取字元串中的特定位置的一個或多個字元。舉例說明其基本功能:
@echo off
set ifo=abcdefghijklmnopqrstuvwxyz0 12 3456789
echo 原字元串(第二行為各字元的序號):
echo %ifo%
echo 1234567890123 45678901234567890123456
echo 截取前5個字元
echo %ifo:~0,5%
echo 截取最後5個字元
echo %ifo:~-5%
echo 截取第一個到倒數第6個字元
echo %ifo:~0,-5%
echo 從第4個字元開始,截取5個字元:
echo %ifo:~3,5%
echo 從倒數第14個字元開始,截取5個字元:
echo %ifo:~-14,5%
pause
2、替換字元串
替換字元串,即將某一字元串中的特定字元或字元串替換為給定的字元串。舉例說明其功能:
@echo off
set aa=偉大的中國!我為你自豪!
echo 替換前:%aa%
echo 替換後:%aa:中國=中華人民共和國%
echo aa = %aa%
set "aa=%aa:中國=中華人民共和國%"
echo aa = %aa%
pause
對於上面的例子有一點說明,對比兩個echo aa = %aa%可以發現,如果要修改變數aa的內容的話,就需要將修改結果“%aa:中國=中華人民共和國%”賦值給變數aa。上面的字元串截取也有著同樣的特點。
3、字元串合併
其實,合併字元串就是將兩個字元串放在一起就可以了。舉例說明:
@echo off
set aa=偉大的中國
set bb=我為你自豪!
echo %aa%%bb%
echo aa=%aa%
echo bb=%bb%
set "aa=%aa%%bb%"
echo aa=%aa%
pause
同樣,如果要改變變數aa的內容的話,就需要將合併結果“%aa%%bb%”賦值給變數aa。
4、擴充字元串
“擴充”這個辭彙來自於微軟自己的翻譯,意思就是對表示檔案路徑的字元串進行特殊的處理,具體功能羅列如下:
~I - 刪除任何引號("),擴充 %I
%~fI - 將 %I 擴充到一個完全合格的路徑名
%~dI - 僅將 %I 擴充到一個驅動器號
%~pI - 僅將 %I 擴充到一個路徑
%~nI - 僅將 %I 擴充到一個檔案名稱
%~xI - 僅將 %I 擴充到一個檔案擴展名
%~sI - 擴充的路徑只含有短名
%~aI - 將 %I 擴充到檔案的檔案屬性
%~tI - 將 %I 擴充到檔案的日期/時間
%~zI - 將 %I 擴充到檔案的大小
%~$PATH:I - 查找列在路徑環境變數的目錄,並將 %I 擴充
到找到的第一個完全合格的名稱。如果環境變數名未被定義,或者沒有找到檔案,此組合鍵會擴充到空字元串可以組合修飾符來得到多重結果:
%~dpI - 僅將 %I 擴充到一個驅動器號和路徑
%~nxI - 僅將 %I 擴充到一個檔案名稱和擴展名
%~fsI - 僅將 %I 擴充到一個帶有短名的完整路徑名
%~dp$PATH:i - 查找列在路徑環境變數的目錄,並將 %I 擴充到找到的第一個驅動器號和路徑。
%~ftzaI - 將 %I 擴充到類似輸出線路的 DIR
以上內容引用於for /?幫助信息。其中的I代表變數I,不過需要說明的是,不是所有的變數都能夠進行擴充的,有兩個條件:1.該字元串代表一個檔案路徑;2.變數要用%x來表示,x可取a-z A-Z 0-9共62個字元中的任意一個。

相關詞條

熱門詞條

聯絡我們