主頁(yè) > 知識(shí)庫(kù) > 批處理入門與提高

批處理入門與提高

熱門標(biāo)簽:綿陽(yáng)外呼線路 五華銷售外呼管理系統(tǒng)電話 聯(lián)通400電話去哪里申請(qǐng)啊 徐州客服外呼系統(tǒng)排名 湖州手機(jī)外呼系統(tǒng) 軟通動(dòng)力地圖標(biāo)注專員 DOTA地圖標(biāo)注app 百度地圖標(biāo)注地址有什么影響 汕頭外呼crm系統(tǒng)
大家知不知道默認(rèn)共享這回事?這東西用不著的地方可就不是好東西了.所以就要?jiǎng)h掉.但這東西是每次系統(tǒng)重起后都會(huì)重新創(chuàng)建的.所以每次都要重新打開cmd重新刪掉一下.極為麻煩.但有了批處理文件就不一樣了,先把命令輸入到批處理文件中,然后加入到啟動(dòng)項(xiàng)中,每次啟動(dòng)就會(huì)自動(dòng)運(yùn)行,免去了每次輸入命令的麻煩.
如何創(chuàng)建批處理文件?
將記事本打開,什么都不用寫,然后選擇文件,保存.保存類型選擇所有文件,文件名則命名為*.bat這個(gè)*代表是文件名,你可以隨便的起.保存好之后,看看你保存的地方,會(huì)出現(xiàn)一個(gè)白色窗口里有個(gè)黃色齒輪的圖標(biāo).這東西就是你創(chuàng)建的批處理文件,雙擊他就可以運(yùn)行,但他現(xiàn)在由于里面沒(méi)有輸入任何命令,所以他運(yùn)行了并不會(huì)做任何事情.當(dāng)我們想往這個(gè)*.bat文件中添加?xùn)|西時(shí),只要右鍵選擇他,然后選擇編輯,就可以打開記事本往內(nèi)輸入命令了.
批處理文件中的命令是什么?
批處理文件中的命令暫時(shí)先可以理解為dos命令,等稍后深入理解了以后再進(jìn)行解釋.批處理顧名思義就是一大堆東西堆在一起處理.換句話說(shuō)就是往里面寫一條條dos命令,然后按順序挨個(gè)執(zhí)行,效果跟你在cmd里敲dos命令是一個(gè)效果.只不過(guò)用批處理寫好之后,要運(yùn)行只要雙擊下就可以運(yùn)行了.而不用再一遍一遍的重復(fù)的往里面打命令.這就是批處理文件的好處.
除了運(yùn)行dos命令之外,他還可以支持選擇結(jié)構(gòu)if,循環(huán)結(jié)構(gòu)for,goto等,與c有點(diǎn)類似,但遠(yuǎn)沒(méi)有c全面,并且編寫語(yǔ)言十分不規(guī)范.
批處理語(yǔ)法:
先講個(gè)最基本的東西 @echo off
echo的意思是回旋,這里的意思就是回顯,echo off意思就是關(guān)閉回顯.前面的@表示echo off 這一行也不會(huì)回顯你可以試著去掉@和整行去掉.@的另一個(gè)功能是在執(zhí)行完批處理文件時(shí)自動(dòng)恢復(fù)命令回顯。如果第一句用的是ECHO OFF,那么在執(zhí)行完批處理文件以后不會(huì)顯示命令提示符。
舉個(gè)例子:如果我們先創(chuàng)建一個(gè)1.bat文件,往里面輸入:
dir 然后保存在c:\下.然后我們運(yùn)行cmd,進(jìn)入c盤根目錄下,輸入1.bat,則顯示:
C:\&;dir 驅(qū)動(dòng)器 C 中的卷沒(méi)有標(biāo)簽。 卷的序列號(hào)是 0C5D-07FF
 C:\&;的目錄
2004-08-25  00:45  DIR> WINDOWS2004-08-25  00:51DIR> Documents and Settings
.....
C:\
如果將1.bat內(nèi)容修改成
echo off
dir
然后再在cmd里輸入1.bat,則會(huì)顯示 
C:\&;echo off
//因?yàn)檫\(yùn)行了echo off,所以沒(méi)有顯示dir命令,直接顯示了結(jié)果 驅(qū)動(dòng)器 C 中的卷沒(méi)有標(biāo)簽。 卷的序列號(hào)是 0C5D-07FF
 C:\&;的目錄
2004-08-25  00:45  DIR> WINDOWS2004-08-25  00:51DIR> Documents and Settings
.....
C:\
如果將1.bat文件修改成:
@echo offdir
則顯示成:
C:\&;1.bat        
//與前面不同,并沒(méi)有顯示echo off,原因是加了@,所以不顯示@后面的內(nèi)容.又因?yàn)榧?
//了echo off,所以后面的命令不顯示,直接顯示結(jié)果 驅(qū)動(dòng)器 C 中的卷沒(méi)有標(biāo)簽。 卷的序列號(hào)是 0C5D-07FF
 C:\&;的目錄
2004-08-25  00:45  DIR> WINDOWS2004-08-25  00:51DIR> Documents and Settings
.....
C:\
通過(guò)以上的比較,相信你對(duì)echo off命令已經(jīng)充分掌握了.
接下來(lái)講的是call命令:
call的意思為調(diào)用.假如有2個(gè)批處理文件a.bat和b.bat.如果我想運(yùn)行a.bat的當(dāng)中運(yùn)行b.bat.如何運(yùn)行呢?其實(shí)很簡(jiǎn)單,只要在a.bat文件中輸入call命令,則可以在a.bat運(yùn)行的當(dāng)中,運(yùn)行b.bat,等b.bat運(yùn)行完之后,繼續(xù)執(zhí)行a.bat
call命令格式:
CALL [drive:][path]filename [batch-parameters]
batch-parameters   指定批處理程序所需的命令行信息。
舉例如下,我們?cè)赾盤根目錄下創(chuàng)建a.bat文件,內(nèi)容為:
echo this is a.bat
call d:\b.bat
echo done
然后在d盤根目錄下創(chuàng)建b.bat,內(nèi)容為:
echo this is b.bat
保存后,打開cmd,進(jìn)入c盤根目錄,然后輸入1.bat,顯示如下:
C:\&;a.bat
C:\&;echo this is a.batthis is a.bat
C:\&;call d:\b.bat
C:\&;echo this is b.batthis is b.bat
C:\&;echo donedone
由例子很容易看出來(lái),是先運(yùn)行a.bat的內(nèi)容,直到遇到call b.bat后,則調(diào)用b.bat,運(yùn)行完b.bat后,再返回a.bat接著運(yùn)行call b.bat后面的echo done語(yǔ)句,直至將a.bat的所有批處理命令運(yùn)行完.
注:里面有個(gè)[batch-parameters]里面的所指的參數(shù)是什么,知道的朋友能否告知,不勝感激.
PAUSE 命令暫停批處理程序的執(zhí)行并顯示一條消息,提示用戶按任意鍵繼續(xù)執(zhí)行。只能在批處理程序中使用該命令。
rem命令:
表示此命令后的字符為解釋行(注釋),不執(zhí)行,只是給自己今后參考用的(相當(dāng)于程序中的注釋).
同時(shí)你可以用兩個(gè)冒號(hào)來(lái)替代rem.::等同于一個(gè)rem.但他們有個(gè)區(qū)別,就是用::作注釋的話他是不回顯的,即使你打echo on強(qiáng)制回顯也沒(méi)有同的.同時(shí)rem可以在config.sys中加注釋.
語(yǔ)法: rem[commnet]
批處理文件參數(shù):
有點(diǎn)編程基礎(chǔ)的人都知道函數(shù)有參數(shù).批處理文件也有參數(shù).
我打個(gè)比方,希望能幫助沒(méi)有語(yǔ)言基礎(chǔ)的人也能看的非常明白. 
我從例子里開始吧.首先在c盤根目錄下創(chuàng)建一個(gè)批處理文件 a.bat,里面輸入內(nèi)容
echo %1
然后打開cmd,然后進(jìn)入c盤根目錄.輸入:a "this is a canshu"
得到結(jié)果如下:
C:\&;a.bat "this is a test"
C:\&;echo "this is a test""this is a test"
輸入的a "this is a canshu"中,a為新建的a.bat的文件名a(后面的.bat可寫也可不寫),而a后面的 "this is a canshu"這句話就是參數(shù),寫在這的參數(shù),在程序運(yùn)行中就將參數(shù)自動(dòng)放到批處理程序中去.那么放在什么位置呢?就是放在%1的地方.
看了例子,讓我們看看整個(gè)關(guān)于參數(shù)的定義如何:
批處理文件還可以像C語(yǔ)言的函數(shù)一樣使用參數(shù)(相當(dāng)于DOS命令的命令行參數(shù)),這需要用到一個(gè)參數(shù)表示符"%"。%[1-9]表示參數(shù),參數(shù)是指在運(yùn)行批處理文件時(shí)在文件名后加的以空格(或者Tab)分隔的字符串。變量可以從%0到%9,%0表示批處理命令本身,其它參數(shù)字符串用%1到%9順序表示。//我們上個(gè)程序的例子里就有%1,他就是參數(shù),而輸入中"this is a test"作為參數(shù)就直接放到%1的位置,于是程序就變成了 echo "this is a test".
再舉幾個(gè)例子幫助你理解:
C:根目錄下一批處理文件名為b.bat,內(nèi)容為: @echo off type %1     
//type為dos中的輸出命令,可以用來(lái)輸出文本文件的內(nèi)容,比如我們新建一個(gè)1.txt文件
//里面輸入內(nèi)容,保存.進(jìn)cmd,如果輸入1.txt則看不了1.txt文件內(nèi)容,但是如果我
//想看怎么辦呢?這時(shí)候可以用type命令,只要在cmd里輸入type 1.txt就能顯示
//1.txt文件中的內(nèi)容了 type %2 那么運(yùn)行C:\&;b a.txt b.txt %1 : 表示a.txt %2 : 表示b.txt 
于是上面的批處理命令就變成了
@echo off
type a.txt
type b.txt于是上面的命令將順序地顯示a.txt和b.txt文件的內(nèi)容。
沒(méi)有編程基礎(chǔ)的人可能要問(wèn),干什么要弄個(gè)參數(shù)啊?在后面加個(gè)參數(shù)多麻煩???直接往里面寫不就好了???!其實(shí)這樣想有對(duì)的方面也有錯(cuò)的方面.還是舉個(gè)例子說(shuō)明吧.
第一步還是在c盤根目錄下新建一個(gè)批處理文件,我們?nèi)∶詾閍.bat.往里面的內(nèi)容輸入為:
ping %1  
//ping命令可以簡(jiǎn)單理解為測(cè)試一臺(tái)機(jī)器開著還是沒(méi)有開,如果開著的話,他就回給你回送回應(yīng).然后進(jìn)cmd,我們想測(cè)試下163的服務(wù)器是不是開著,則輸入a www.163.com,對(duì)于知道ping命令的人,可以打ping進(jìn)行檢查,但如果想ping的人不知道ping命令怎么用,那怎么辦???這時(shí)候你就可以把命令預(yù)先輸入到批處理文件中,保存好,然后讓不會(huì)用的人進(jìn)cmd,運(yùn)行你的批處理文件,文件名后面加上他要ping 的網(wǎng)站地址就行了.換句話說(shuō),他想ping?。保叮尘椭苯蛹樱保叮车木W(wǎng)址,想ping sina就直接加sina的網(wǎng)址.這樣只要輸入一個(gè)參數(shù),而不用改程序本身,整個(gè)程序的通用性就大大提高了.
這是對(duì)于一個(gè)簡(jiǎn)單的ping命令,你或許覺(jué)得用參數(shù)不值得,還是直接改不就好了?。绻绦蛴泻芏鄺l,你一下找不到在哪改怎么辦啊?所以,只要運(yùn)行下,輸入?yún)?shù),結(jié)果自己就會(huì)出來(lái),不用再象你一樣,考慮怎么編寫批處理文件.人家只要知道是輸入什么東西能讓批處理程序運(yùn)行,而編寫的人則想的是如何讓不懂程序的人能運(yùn)行程序.
if命令
舉個(gè)例子:如果a喜歡b,那么a就要娶b.這句話翻譯成計(jì)算機(jī)語(yǔ)言就成了
if a喜歡b a就要娶b.
當(dāng)然拉,計(jì)算機(jī)不可能理解a喜歡b,a就要娶b這兩句話,這里只是舉個(gè)例子讓你方便理解.
if語(yǔ)句一共有3種模式,如下:
IF [NOT] string1==string2 command
IF [NOT] EXIST filename command
IF [NOT] ERRORLEVEL number command
NOT  指定只有條件為 false 的情況下, Windows XP 才應(yīng)該執(zhí)行該命令。
ERRORLEVEL number 如果最后運(yùn)行的程序返回一個(gè)等于或大于指定數(shù)字的退出編碼,指定條件為 true。
string1==string2  如果指定的文字字符串匹配,指定條件為 true。
EXIST filename   如果指定的文件名存在,指定條件為 true。
command 如果符合條件,指定要執(zhí)行的命令。如果指定的條件為 FALSE,命令后可跟一個(gè)執(zhí)行 ELSE關(guān)鍵字后的命令的 ELSE 命令。
我們先講解第一種:
IF [NOT] string1==string2 command
自然語(yǔ)句意思:如果string1==string2,那么執(zhí)行command
下面再舉個(gè)能實(shí)際應(yīng)用的if語(yǔ)句.
自然語(yǔ)句:如果輸入的參數(shù)為3,那么顯示"a=3"
計(jì)算機(jī)語(yǔ)句:
@echo offif "%1"=="3" echo "a=3"
或者寫成
@echo offif %1==3 echo "a=3"
注意:當(dāng)要測(cè)試的時(shí)候,因在cmd底下,輸入1.bat 3.因?yàn)檫@里用了是傳遞參數(shù),具體看文章前部分"批處理文件參數(shù)".
第二種:
IF [NOT] EXIST filename command
這條命令用語(yǔ)檢測(cè)文件是否存在.如果存在,執(zhí)行command.如果不存在,則什么也不顯示.
如:我們想檢查e盤根目錄下是否有一個(gè)叫2.txt的文件.如果存在,則顯示exist.如果不存在,則什么也不顯示.
批處理命令如下:
@echo offif exist e:\2.txt echo "exist 2.txt"
第三種:
IF [NOT] ERRORLEVEL number command
這個(gè)我引用點(diǎn)資料,感覺(jué)別人寫得更詳細(xì),引用部分為粉色字部分:
if errorlevel 數(shù)字> 待執(zhí)行的命令 
很多DOS程序在運(yùn)行結(jié)束后會(huì)返回一個(gè)數(shù)字值用來(lái)表示程序運(yùn)行的結(jié)果(或者狀態(tài)),通過(guò)if errorlevel命令可以判斷程序的返回值,根據(jù)不同的返回值來(lái)決定執(zhí)行不同的命令(返回值必須按照從大到小的順序排列)。如果返回值等于指定的數(shù)字,則條件成立,運(yùn)行命令,否則運(yùn)行下一句。 
如if errorlevel 2 goto x2 
==== 注 ====返回值從大到小的順序排列不是必須的, 而只是執(zhí)行命令為 goto 時(shí)的習(xí)慣用法, 當(dāng)使用 set 作為執(zhí)行命令時(shí), 通常會(huì)從小到大順序排列, 比如需將返回碼置入環(huán)境變量, 就需使用以下的順序形式: 
if errorlevel 1 set el=1 if errorlevel 2 set el=2 if errorlevel 3 set el=3 if errorlevel 4 set el=4 if errorlevel 5 set el=5
當(dāng)然, 也可以使用以下循環(huán)來(lái)替代, 原理是一致的: for %%e in (1 2 3 4 5 6 7 8...) do if errorlevel %%e set el=%%e 
//此處為一個(gè)for循環(huán),后面會(huì)繼續(xù)介紹到的,看不懂可以先跳過(guò)去
if errorlevel 比較返回碼的判斷條件并非等于, 而是大于等于. 由于 goto 的跳轉(zhuǎn)特性, 由小到大排序會(huì)導(dǎo)致在較小的返回碼處就跳出; 而由于 set命令的 "重復(fù)" 賦值特性, 由大到小排序會(huì)導(dǎo)致較小的返回碼 "覆蓋" 較大的返回碼. 
另外, 雖然 if errorlevel=數(shù)字> command 也是有效的命令行, 但也只是 command.com 解釋命令行時(shí)將 = 作為命令行切分符而忽略掉罷了 

標(biāo)簽:廣東 清遠(yuǎn) 新余 棗莊 濟(jì)南 內(nèi)江 邯鄲 克拉瑪依

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《批處理入門與提高》,本文關(guān)鍵詞  批處理,入門,與,提高,批處理,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《批處理入門與提高》相關(guān)的同類信息!
  • 本頁(yè)收集關(guān)于批處理入門與提高的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章