版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
批處理語法,bat語批處理就是把一批或者說是一條條命令放在一個(gè)文本里,然后批量執(zhí)行!執(zhí)行一批命令的文件的擴(kuò)展名是BAT文件或者CMD,把任何一批命令放入在有這樣擴(kuò)展名的文件里,執(zhí)行時(shí)里面令就會(huì)一條條的執(zhí)行完,當(dāng)然我們還可以在其中加入一些邏輯判斷的語句,讓里面令在滿足一定條件時(shí)執(zhí)行指定了解了大概意思后,我們正式開始學(xué)習(xí).先看一個(gè)簡單的例@echoecho歡迎來到BAT!"把上面的3條命令保存為test.bat或者test.cmd然后執(zhí)行,他就會(huì)在屏幕上顯示二行話:"歡迎來到非BAT!請(qǐng)按任意鍵繼續(xù)..."這就是一個(gè)簡單批處理文件了,我們來分析這個(gè)批處理文件一共就用了2命"echo""pause"有一個(gè)特殊符號(hào)@符號(hào)在批處理中的作用是關(guān)閉當(dāng)前行命令的回顯,也就是不顯示執(zhí)行的是什么命令,只顯示命令的結(jié)果!你可以執(zhí)行下面這個(gè)批處理文件來理解,保存為*.bat或者*.CMD@echo你好echoecho命令的作用有兩個(gè),一個(gè)是在CMD上回顯一行內(nèi)容.如:echo"歡迎來到非常還一個(gè)是關(guān)閉命令的回顯:echoechooff的作用就相當(dāng)于在每條命令前面加一個(gè)@符號(hào),這樣所有令將只會(huì)顯示結(jié)果我們echooff命令前加一個(gè)@符號(hào)是為了不讓echooff條命令本身顯示出來,讓pause命令就是暫停的意思,防止批處理執(zhí)行完后直接退出!執(zhí)行pause命令后會(huì)自動(dòng)CMD顯示"請(qǐng)按任意鍵這樣一行話從上面這個(gè)簡單的批處理中,我們可以發(fā)現(xiàn)其實(shí)批處理就是運(yùn)用一些含有特殊意義的符號(hào)和一些完成指定功能令組合而成,那么在批處理中有多少這樣的特殊符號(hào)和功能命令呢?我們現(xiàn)在就來仔細(xì)了解一下一些最常用的!(以下內(nèi)容來源網(wǎng)絡(luò),請(qǐng)各位仔細(xì)閱讀,好進(jìn)入下節(jié)的實(shí)例說批處理的常見命還有(FOR,SETLOCAL,SHIFT)這幾個(gè)命令比較難,不適合寫在基礎(chǔ)篇,以后說批處理定義:顧名思義,批處理文件是將一系列命令按一定的順序集合為一個(gè)可執(zhí)行的文本文件,其擴(kuò)展名為BAT。1、REMREM是個(gè)注釋命令,一般用來給程序加上注解,該命令后的內(nèi)容在程序執(zhí)行時(shí),將不會(huì)被例:REM個(gè)命令就是注釋2、ECHO一個(gè)回顯命令,主要參數(shù)有OFFON。一般用ECHOMESSAGE顯示一個(gè)特定的例EchoRem以上代表關(guān)閉回顯(就是不顯示所執(zhí)行令Echo個(gè)就是消息Rem上代表顯示“這就是消息(message)”這列字符3、GOTO會(huì)點(diǎn)編程的朋友就會(huì)知道這是跳轉(zhuǎn)的意在批處理中允許以“:XXX”來構(gòu)建一個(gè)標(biāo)號(hào)然后用GOTOXXX直接來執(zhí)行標(biāo)號(hào)后令。REM面就是名為LABEL標(biāo)DIRC:\DIRGOTOREM上程序跳轉(zhuǎn)標(biāo)號(hào)LABEL繼續(xù)執(zhí)行4、CALL命令可以在批處理執(zhí)行過程中調(diào)用另一個(gè)批處理,當(dāng)另一個(gè)批處理執(zhí)行完后,再繼例ECHO這就2內(nèi)容ECHO1內(nèi)容CALLECHO12內(nèi)容全部顯示完成。1.BAT,來看看結(jié)果:5、PAUSE,玩游戲的人都知道,暫停的意在這里就是停止系統(tǒng)命令的執(zhí)行并顯示下面的內(nèi)容。例:6、IF條件判斷語句,語法格式如下IF[NOT]ERRORLEVELnumbercommandIF[NOT]string1==string2commandIF[NOT]EXISTfilenamecommand解釋下[NOT]:將返回結(jié)果取反值,就是“如果沒有”的意是命令執(zhí)行完成后返回的退出退出值的數(shù)字取值范圍0~255,判斷時(shí)值的排列順序應(yīng)該由大到返回的值大于等于指string1和string2都為字符的數(shù)英文內(nèi)字符的大小寫將看作不這個(gè)條件中的等條件相等后即執(zhí)行后面的EXIST為文件 存在的意IFERRORLEVEL個(gè)句子必須放在某一個(gè)命令的后面,執(zhí)行命令后由IFERRORLEVEL例IF[NOT]ERRORLEVELnumber檢測命令執(zhí)行完后的返回值做出判echooffdirz:rem如果退出代1(不成功)就跳至標(biāo)題1處執(zhí)IFERRORLEVEL1gotoREM如果退出代0(成功)就跳至標(biāo)題0處執(zhí)IFERRORLEVEL0gotoecho令執(zhí)行成功Rem程序執(zhí)行完畢跳至標(biāo)題exit處退gotoecho令執(zhí)行失敗Rem程序執(zhí)行完畢跳至標(biāo)題exit處退gotoRem里是程序的出IFstring1==string2檢測當(dāng)前變量的值做出判ECHOIF1==2gotonoEcho變量相等!gotoexitecho量不相goto看看效果,敲擊這個(gè)命令1.bat數(shù)IF[NOT]EXISTfilename發(fā)現(xiàn)特定的文件做出判echoIFnotEXISTautoexec.batgoto1echo文件存在成功!gotoecho件不存在失敗goto這個(gè)批處理大家可以放在C盤和D盤分別執(zhí)行,看看特殊符1.2.|^&9.10.一、@這個(gè)字符在批處理中的意思是關(guān)閉當(dāng)前行的回顯。我們從前幾課知ECHOOFF可以關(guān)閉掉整個(gè)批處理命令的回顯,但不能關(guān)掉ECHOOFF這個(gè)命令,現(xiàn)在我們?cè)贓CHOOFF個(gè)命令前加個(gè)@,就可以達(dá)到所有命令均不回顯的要echooffdird:\@echooffdird:\這個(gè)字符的意思是傳遞并且覆蓋,他所起的作用是將運(yùn)行的回顯結(jié)果傳遞到后面的范(后邊可以是文件,也可以是默認(rèn)的系統(tǒng)控制臺(tái))比如1.txt文件內(nèi)容是使用命令:dir*.txt這時(shí)1.txt容如驅(qū)動(dòng)器C中的卷沒有。卷的序列號(hào)是3827-1BDDC:2004-05-2004-05-32004-05-03文字0 339,111,936可用字三、這個(gè)符號(hào)的作用和>有點(diǎn)類似,但他們的區(qū)別是>>是傳遞并在文件的末尾追加,而>是覆蓋用法同內(nèi)容1+1使用命令:dir*.txt咱們來看看顯示的結(jié)果如四、這是一個(gè)管道傳輸命令,意思是將上一命令執(zhí)行的結(jié)果傳到下一個(gè)命令去處理例如:dirc:\|find以上命令是:查找C:\所有,并發(fā)現(xiàn)TXT字符串FIND功能請(qǐng)用FIND行查在不使format的自動(dòng)格式化參數(shù)時(shí),我是這樣來自動(dòng)格式化A盤echoy|formata:/s/qformat都知道,再格盤時(shí)要y確認(rèn)是否格盤,這個(gè)命令前echoy用|字符來echoy結(jié)果傳給format令從而達(dá)到自動(dòng)輸入y的目(這條命令有危害性,測試時(shí)請(qǐng)慎重五、^是對(duì)特殊符號(hào)"<",">","&"的前導(dǎo)字符,在命令中他將以上3個(gè)符號(hào)的特殊功能去掉,比echotest結(jié)果則他沒有追加在1.txt里,呵呵。只是顯示了這個(gè)符號(hào)允許在一行中使用2個(gè)以上不同令,當(dāng)?shù)谝粋€(gè)命令執(zhí)行失敗了,也不影響后邊令執(zhí)行。比如dirz:\&diry:\&dir以上命令會(huì)連續(xù)顯示z,y,c盤的內(nèi)容,不理會(huì)該盤是否存這個(gè)命令和上邊的類似,但區(qū)別是,第一個(gè)命令失敗時(shí),后邊令也不會(huì)執(zhí)dirz:\&&diry:\&&dir八、雙引號(hào)允許在字符串中包含空格,進(jìn)入一個(gè)特 可以用如下方cd"programfiles"cdprogra~1cd以上三種方法都可以進(jìn)入programfiles這九、逗號(hào)相當(dāng)于空格,在某些情況下“,”可以用來當(dāng)做空格使比如十、分號(hào),當(dāng)命令相同時(shí),可以將不同目標(biāo)用;來,但執(zhí)行效果不變,如執(zhí)行過程中發(fā)生錯(cuò)誤,則只返回錯(cuò)誤報(bào)告,但程序還是會(huì)比如dir以上命令相當(dāng)dirc:\dird:\dire:\dir第二節(jié)(for命令詳看了看第一節(jié)的東西,發(fā)現(xiàn)那些簡單令都有詳細(xì)解釋,實(shí)在想不出什么更好的東西來解釋他們,就直接來一個(gè)"FOR命令詳解"在其中運(yùn)用這些東西來解釋吧!講FOR之前呢,咋先告訴各位新手朋友,如果你有什么命令不懂,直接在CMD下面輸入:name/?這樣的格式來看系統(tǒng)給出的幫助文件,比如for/?就會(huì)把FOR命令的幫助全部顯示出來!當(dāng)然許多菜鳥都看不懂 菜鳥,把FOR命令用的方式說明下!FOR這條命令基本上都被用來處理文本,我們這次除了要說他處理文本的作用外還要講他看看他的基本格式(這里我的是批處理中的格式,直接在命令行只需要一個(gè)%號(hào)FOR參數(shù)%%變量名IN(相關(guān)文件或命令)DO執(zhí)行參數(shù):FOR4參數(shù)d/lr/f們的作用我在下面用例子解%%變量這個(gè)變量名可以是小寫a-z者大A-Z,他們區(qū)分大小寫哦~FOR會(huì)把每個(gè)到的值給他!IN:命令的格式,照寫就是了(相關(guān)文件或命令):FOR要把什么東西然后賦值給變量,不懂的話看下面的例do:命令的格式,照寫就是了執(zhí) 令:對(duì)每個(gè)變量的值要執(zhí)行什么操作就寫在這看不懂這些說明,可以在CMD輸入for/?看系統(tǒng)提供的幫助!我這里也給出來吧,大家FOR%%variableIN(set)DOcommand[command-%%variable指定一個(gè)單一字母可替換的參 指定一個(gè)或一組文件。可以使用通配符 指定對(duì)每個(gè)文件執(zhí)行令command-為特定命令指定參數(shù)或命令行開關(guān)現(xiàn)在開始講每個(gè)參數(shù)的意僅Set也就是我上面相關(guān)文件或含通配符(*),將相匹配的每 (而不是指 中的文件組)執(zhí)行指定的Command這個(gè)參數(shù)其實(shí)我也沒弄太懂...有錯(cuò)誤希望各位糾系統(tǒng)幫助的格式:FORDvariableINset)DO他主要用 搜索,不會(huì)搜索文件,看這樣的例@echofor/d%%iin(*)do@echo%%i把他保存放在C盤 執(zhí)行,就會(huì)把C 下的全 名字打印出來,而文件名一個(gè)也在來一個(gè),比如我們要把當(dāng)前路徑下文件夾的名字只有1-3個(gè)字母的打@echofor/d%%iin(???)do@echo%%i 名字只有1-3個(gè)字母的,就會(huì)顯示出來,沒有就不顯示這里解釋下*號(hào)和?號(hào)的作用,*號(hào)表示任意N個(gè)字符,而?號(hào)只表示任意一個(gè)字符@echofor/d%%iin(window?)do@echo%%i保存到C盤下執(zhí)行,會(huì)顯示什么呢?自己看/D參數(shù)只能顯示當(dāng) 下 名字,這個(gè)大家要注意遞 樹[Drive:]Path,在樹的每個(gè) 中執(zhí)行for語句。如果在/R后沒有指 。如果Set只是一個(gè)句點(diǎn)(.),則只枚舉 系統(tǒng)幫助的格式:FORRdrive:]path]variableINsetDO上面我們知道,/D只能顯示當(dāng)前路徑下的 名字,那么現(xiàn)在這個(gè)/R也是和 能干嘛呢?放心他比/D強(qiáng)大多了!他可以把當(dāng)前或者你指定路徑下的文件名字全部,注意是文件名字,有什么用看例子!@echofor/rc:\%%iin(*.exe)do@echo%%i咋們把這個(gè)BAT保存到D盤隨便哪里然后執(zhí)行,我會(huì)就會(huì)看到,他把C盤根 下面全部的EXE文件都列出來了!!!!再來一@echofor/r%%iin(*.exe)do@echo%%i參數(shù)不一樣了吧!這個(gè)命令前面沒加那個(gè)C:\也就是搜索路徑,這樣他就會(huì)以當(dāng)前 搜索路徑,比如你這個(gè)BAT你把他防災(zāi)d:\test 下執(zhí)行,那么他就會(huì)把D:\test 的全部EXE文件列出來!!!這個(gè)參數(shù)大家因該理解了吧!還是滿好玩令!迭代數(shù)值范使用迭代變量設(shè)置起始值(Start#),然后逐步執(zhí)行一組范圍的值,直到該值超過所設(shè)的終止值(End#)。/L將通過對(duì)Start#與End#進(jìn)行比較來執(zhí)行迭代變量。如果Start#End#,就會(huì)執(zhí)行該命令。如果迭代變量超過End#,則命令解釋程序退出此生成序列12345,而(5,-1,1)則生成序列(54321)。語法是:系統(tǒng)幫助的格式:forLVariableinStart#,Step#,Enddo@echoofffor/l%%iin(1,1,5)do@echo%%i保存執(zhí)行看效果,他會(huì)打123455數(shù)(1,1,5)這個(gè)參數(shù)也就是表示從1開始每次加15終止大會(huì)暈,就打印個(gè)數(shù)字有P用...好的滿足大家,看這個(gè)例@echofor/l%%iin(1,1,5)dostartcmd執(zhí)行后是不是嚇了一跳,怎么多了5個(gè)CMD窗口,呵呵!如果把那個(gè)(1,1,5)改成(1,1,65535)會(huì)有什么結(jié)果,我先告訴大家,會(huì)打開65535個(gè)CMD窗口 算你強(qiáng)當(dāng)然我們也可以把那個(gè)startcmd改成md%%i這樣就會(huì)建立指定 了!!!名字1-看完這個(gè)被我賦予破壞性質(zhì)的參數(shù)后,我們來看最后一個(gè)參\迭代及文件解使用文件解析來處理命令輸出、字符串及文件內(nèi)容。使用迭代變量定義要檢查的內(nèi)容或字符串,并使用各種Parsing 選項(xiàng)進(jìn)一步修改解析方式。使用Parsing 令牌選項(xiàng)指定哪些令牌應(yīng)該作為迭代變量傳遞。請(qǐng)注意:在沒有使用令牌選項(xiàng)時(shí),/F將只檢查第一個(gè)令牌。解析成零個(gè)或個(gè)令牌。然后通過設(shè)置為令牌的迭代變量值,調(diào)用for循環(huán)。默認(rèn)情況下,/F傳遞每個(gè)文件每一行的第一個(gè)空白分隔符號(hào)。跳過空行。系統(tǒng)幫助的格for/F "%%Variablein(FileNameSet)do有沒有發(fā)現(xiàn)這個(gè)參數(shù)說明比上面幾個(gè)都多...沒辦法,人們用FOR命令主要也就是用/f參數(shù),FOR主場啊!大家得好好看!先來解釋下那個(gè)多出來的 他表4個(gè)參 -指一個(gè)行注釋字符的結(jié)尾(就一個(gè) -指在文件開始時(shí)忽略的行數(shù)。 -指分隔符集。這個(gè)替換了空格和跳格鍵的tokens=x,y,m-n每行的哪一個(gè)符號(hào)被傳遞到每個(gè)迭代的for本身。這會(huì)導(dǎo)致額外變量名稱的分配。m-n格式為一個(gè)范圍。通過nth號(hào)指mth。如果那么額外的變量將在最后一個(gè)符號(hào)解析之后分配并接受行的保留文本。 定新語法已在下類情況中使用:引號(hào)字符為文字字符串命令并允許在中使引號(hào)擴(kuò)起文件名稱usebackq這個(gè)參數(shù)不用理解了,系統(tǒng)默認(rèn)會(huì)給我們加上!為了能使用這個(gè)例子,我們先新建一個(gè)文本文件,在里面打上這些內(nèi)容保存為;郁悶啊您好迎來常批處理我們的完畢@echoFOR/F"eol=;tokens=1delims="%%iin(test.txt)do@echo%%i我們把這個(gè)BAT保存到和你的test.txt相同的 您好我們的為什么會(huì)這樣?我來解這個(gè)命令會(huì)在當(dāng)前 下名為test.txt文件中的內(nèi)容,將每一行的內(nèi)容賦值給變量%%i,忽略掉以;號(hào)開頭的行,并且以空格做為分隔符號(hào),打印每行以空格做分隔符號(hào)的第一列當(dāng)然我們想要把全部文件內(nèi)容直接打印出來就可以這@echoFOR/F"delims="%%iin(test.txt)do@echo%%i另外/F參數(shù)還可以以輸出命令的結(jié)果看這個(gè)@echoFOR/F"delims="%%iin('netuser')do@echo%%i這樣你本機(jī)全部帳號(hào)名字就出來了把擴(kuò)號(hào)內(nèi)的內(nèi)容用兩個(gè)單引號(hào)引起來就表示那個(gè)當(dāng)命令執(zhí)行,FOR會(huì)返回命令的每行結(jié)果,加那個(gè)"delims="是為了讓我空格的行能整行顯示出來,不加就只顯示空格左邊一列!基本上講完了FOR的基本用法了...如果你看過FOR的系統(tǒng)幫助,你會(huì)發(fā)現(xiàn)他下面還有一本節(jié)到此結(jié)速,希望對(duì)各位有所幫第三節(jié)(FOR命令中的變FOR命令中有一些變量,他們的用法許多新手朋友還不太了解,今天給大家講解他們的用先把FOR的變量全部列出 除任何引號(hào)("),擴(kuò) I展到一個(gè)完全合格的路徑 將I展到一個(gè)驅(qū)動(dòng)器 將I展到一個(gè)路 將I展到一個(gè)文件 將I展到一個(gè)文件擴(kuò) 的路徑只含有 I展到文件的文件屬 I展到文件的日期/時(shí) I展到文件的大%~$PATH:I-查找列在路徑環(huán)境變量的 ,并將%I擴(kuò)展未被定義,或者沒有找到文件,此組合鍵會(huì)擴(kuò)展到空字符串我們可以看到每行都有一個(gè)大寫字母"I",這個(gè)I其實(shí)就是我們?cè)贔OR帶入的變量,我FOR語句代入的變量名是什么,這里就寫什么.比如:FOR/F%%zIN('set')DO@echo%%z這里我們代入的變量名是z那么我們就要把那個(gè)Iz,例如%~fI改為%~fz至于前面的%~p樣的內(nèi)容就是語法了! 除任何引號(hào)("),擴(kuò)這個(gè)變量的作用就如他的說明,刪除引號(hào)!我們來看這個(gè)例子:首先我們?cè)谧烂娼⒁粋€(gè)名字為temp.txt文本文件,在里面輸入這些內(nèi)然后在建立個(gè)BAT文件代FOR/F"delims="%%iIN(temp.txt)DO@echo%%~i和之前temp.txt中的內(nèi)容對(duì)比一下,我們會(huì)發(fā)現(xiàn)第一行和第三行的引號(hào)都了,這就是刪除引號(hào)~i作用了!刪除引號(hào)規(guī)則如下(BAT兄補(bǔ)1、若字符串首尾同時(shí)存在引號(hào),則刪除首尾的引號(hào)2、若字符串尾不存在引號(hào),則刪除字符串首的引號(hào)3、如果字符串中間存在引號(hào),或者只在尾部存在引號(hào),則不刪除 I展到一個(gè)完全合格的路徑名把代碼保存放在隨便哪個(gè)地方,我這里就放FOR/F"delims=="%%iIN('dir/b')DO@echo%%~fi執(zhí)行后顯示內(nèi)容C:\sandSettings\Administrator\桌面\test.batC:\sandSettings\Administrator\桌面\test.vbs當(dāng)我把代碼中的%%~fi接改成%%iFOR/F"delims=="%%iIN('dir/b')DO@echo%%i執(zhí)行后就會(huì)顯示這些內(nèi)通過對(duì)比,我們很容易就看出沒有路徑了,這就是I展到一個(gè)完全合格的路徑名"也就是如果%i變量的內(nèi)容是一個(gè)文件名的話,他就會(huì)把這個(gè)文件所在的絕對(duì)路徑打印出單打印一個(gè)文件名,自己動(dòng)手動(dòng)實(shí)驗(yàn)下就知 將I展到一個(gè)驅(qū)動(dòng)器號(hào)代碼如下,我還是放到桌FOR/F"delims=="%%iIN('dir/b')DO@echo%%~di執(zhí)行后CMD里顯示如我桌面就兩個(gè)文件test.bat,test.vbs,%%~di作用是,如果變量%%i的內(nèi)容是一個(gè)文件或 或 所在的盤符號(hào)打印出來 -僅將%I擴(kuò)展到一個(gè)路徑FOR/F"delims=="%%iIN('dir/b')DO@echo%%~pi我就不打結(jié)果了,大家自己代碼看結(jié)果吧,下面幾個(gè)都是這么個(gè)用法,代碼給出來,大家自己看結(jié)果吧! 將I展到一個(gè)文件名FOR/F"delims=="%%iIN('dir/b')DO@echo%%~ni 將I展到一個(gè)文件擴(kuò)展名FOR/F"delims=="%%iIN('dir/b')DO@echo%%~xi 展的路徑只含有短名FOR/F"delims=="%%iIN('dir/b')DO@echo%%~si I展到文件的文件屬性FOR/F"delims=="%%iIN('dir/b')DO@echo%%~ai I展到文件的日期/時(shí)間FOR/F"delims=="%%iIN('dir/b')DO@echo%%~ti I展到文件的大小FOR/F"delims=="%%iIN('dir/b')DO@echo%%~zi%~$PATH:I-查找列在路徑環(huán)境變量的 ,并將%I擴(kuò)展未被定義,或者沒有找到文件,此組合鍵會(huì)擴(kuò)展到空字符串這是最后一個(gè),和上面那些都不一樣,我單獨(dú)說說然后在把這些代碼保存為批處理,放在桌面FOR/F"delims=="%%iIN('net.exe')DO@echo%%~$PATH:i他的意思就在PATH變量里指定的路徑里搜索net,exe文件果有net.exe則會(huì)把他所好了,FOR的的變量就介紹第四節(jié)(批處理中的變批處理中的變量,我把他分為兩類,分別為"系統(tǒng)變量"和"自定義變量"我們現(xiàn)在來詳解這兩個(gè)變量!系統(tǒng)變他們的值由系統(tǒng)將其根據(jù)事先定義的條件自動(dòng)賦值,也就是這些變量系統(tǒng)已經(jīng)給他們定義了值,不需要我們來給他賦值,我們只需要調(diào)用而以!我把他們?nèi)?ALLUSERSPROFILE%回“所有用戶”配置文件的位置%APPDATA%本地返回默認(rèn)情況下應(yīng)用程序數(shù)據(jù)的位置%CD%本地返回當(dāng) 字符串%CMDCMDLINE%回用來啟動(dòng)當(dāng)前的Cmd.exe準(zhǔn)確命令行%CMDEXTVERSION%系統(tǒng)返回當(dāng)前令處理程序擴(kuò)展”的版本號(hào)%COMPUTERNAME%回計(jì)算機(jī)的名稱%COMSPEC%回命令行解釋器可執(zhí)行程序的準(zhǔn)確路徑%DATE%回當(dāng)前日期。使datet令相同的格式。由Cmd.exe成。有date令的詳細(xì)信息,請(qǐng)參閱Date%ERRORLEVEL%系統(tǒng)返回上一條命令的錯(cuò)誤代碼。通常用非零值表示錯(cuò)誤%HOMEDRIVE%系統(tǒng)返回連接到用戶主 戶 是在“本地用戶和組”中指定的%HOMEPATH%系統(tǒng)返回用戶主 地用戶和組”中指定的%HOMESHARE%系統(tǒng)返回用戶的共享主 在“本地用戶和組”中指定的%LOGONSERVER%本地返回驗(yàn)證當(dāng)前登錄會(huì)話的域控制器的名%NUMBER_OF_PROCESSORS%系統(tǒng)指定安裝在計(jì)算機(jī)上的處理器的數(shù)目%OS%回操作系統(tǒng)名稱。Windows2000示其操作系統(tǒng)為Windows_NT%PATH%定可執(zhí)行文件的搜索路徑%PATHEXT%系統(tǒng)返回操作系統(tǒng)認(rèn)為可執(zhí)行的文件擴(kuò)展名的列%PROCESSOR_ARCHITECTURE%系統(tǒng)返回處理器的體系結(jié)構(gòu)。值:x86或IA64基%PROCESSOR_IDENTFIER統(tǒng)回處理器說明%PROCESSOR_LEVEL%回計(jì)算機(jī)上安裝的處理器的型號(hào)%PROCESSOR_REVISION%回處理器的版本號(hào)%PROMPT%本地返回當(dāng)前解釋程序令提示符設(shè)置。由Cmd.exe生成%RANDOM回032767間的任意十進(jìn)制數(shù)字。由Cmd.exe成%SYSTEMDRIVE%系統(tǒng)返回包含Windowsserveroperatingsystem (即系統(tǒng))的驅(qū)動(dòng)%SYSTEMROOT%系統(tǒng)返回Windowsserveroperatingsystem 的位置%TEMP%TMP%統(tǒng)和用回對(duì)當(dāng)前登錄用戶可用的應(yīng)用程序所使用的默認(rèn)臨。有些應(yīng)用程序需要TEMP,而其他應(yīng)用程序則需要TMP%TIME%回當(dāng)前時(shí)間。使timet令相同的格式。由Cmd.exe成。有time令的詳細(xì)信息,請(qǐng)參閱Time%USER%本地返回包含用戶帳戶的域的名稱%USERNAME回當(dāng)前登錄的用戶的名%USERPROFILE地回當(dāng)前用戶的配置文件的位%WINDIR%系統(tǒng)返回操作系 的位置這么多系統(tǒng)變量,我們?nèi)绾沃浪闹凳鞘裁茨?在CMD里輸入echo%WINDIR%windir變量名,不是隨便亂輸?shù)?舉個(gè)實(shí)際例子,比如我們要文件到當(dāng)前帳號(hào)的啟 里就可以這copyd:\1.batUSERPROFILE%\「開始」菜單\程序\啟動(dòng)%USERNAME%本地返回當(dāng)前登錄的用戶的名稱。注意有空格 要用引號(hào)引起他們分別是%0%12345一直到%9有一個(gè)%0這個(gè)有點(diǎn)特殊,有幾層意思,先講%1-%9的意思%1回批處理的第一個(gè)%2回批處理的第二個(gè)%3-%9依此推反回批處理參數(shù)?到底怎么個(gè)返回我們看這個(gè)例子,把下面的代碼保存為test.BAT然后放到C盤@echo%1%2%3CMDcd然后輸test.bat是第一個(gè)參數(shù)是第二個(gè)參是第三個(gè)參是第四個(gè)參注意中間的空額,我們會(huì)看到這樣我是第一個(gè)參數(shù)是第二個(gè)參數(shù)是第三個(gè)參數(shù)是第四個(gè)參數(shù)我是第四個(gè)參對(duì)比下代碼,%1就是我是第一個(gè)參數(shù)%2就是我是第二個(gè)參數(shù)這些%1和%9可以讓批處理也能帶參數(shù)運(yùn)行,大大提高批處理功還有一個(gè)%*是什么呢?他的作用不是很大,只是返回參數(shù)而已,不過他是一次返回全部的值,不用在輸入%1%2來確定一個(gè)個(gè)@echooffecho%*同樣保test.batCCMDcdc:\然后輸test.bat是第一個(gè)參數(shù)是第二個(gè)參是第三個(gè)參是第四個(gè)參可以看到他一次把全部參數(shù)都顯示出來好現(xiàn)在開始講那個(gè)比較特殊的%0個(gè)不是返回參數(shù)的值了,他有兩層意思!例子@echooffecho%0保存為test.BAT放在桌面運(yùn)行,會(huì)顯示如下"C:\sandSettings\Administrator\桌面他把當(dāng)前批處理執(zhí)行的所在路經(jīng)打印出來了,這就是返回批處理所在絕對(duì)路徑的意思第二層意思:無限循環(huán)執(zhí)行BAT例子@echooffnetuser保存BAT執(zhí)行,他就會(huì)無限循環(huán)執(zhí)行netuser這條命令,直到你手動(dòng)停FOR命令中的那些就是,FOR變量已經(jīng),就不講了.現(xiàn)在說自定義變故名思意,自定義變量就是由我們來給他賦予值的變量要使用自定義變量就得使用set命令了,看例子.@echosetvar=我是值echo%var%保存BAT執(zhí)行,我們會(huì)看到CMD里返回一個(gè)"我是值var為變量名,=號(hào)右變的是要給變量的值如果我們想讓用戶手工輸入變量的值,而不是在代碼里指定,可以用用set命令的/p參例子@echoset/pvar=請(qǐng)輸入變量的值echo%var%var量號(hào)右邊的是提示語,不是變量的值第五節(jié)(set命令詳很久沒發(fā)貼了,今天來寫點(diǎn)講BAT的新學(xué)貼在上一貼中我簡單的介紹了一下SET設(shè)置自定義變量的作用,現(xiàn)在我來具體講一下set的能@echosetvar=我是echo%var%setvar=我是值這就是BAT接在批處理中設(shè)置變量的方法!set是命令var變量名=號(hào)右邊的"我是值"是變量的值在批處理中我們要這個(gè)變就把var變量名用兩個(gè)%(百分號(hào))擴(kuò)起來,如這種SET語法只能直接在BAT代碼的提前賦予變量的值,有時(shí)候我們需要提供一個(gè)交互界用戶自己輸入變量的值,然后我們?cè)趤砀鶕?jù)這個(gè)值來做相應(yīng)操作,現(xiàn)在我就來說說這的種語法,只需要加一個(gè)"/P"參數(shù)就例子@echoset/pvar=請(qǐng)輸入變量的ifvar1echo輸入1~_~set/p是命令語法var是變量 =號(hào)右邊的"請(qǐng)輸入變量的值:",這個(gè)是提示語不是量的值運(yùn)行后,我們?cè)谔崾菊Z后面直接輸入1,就會(huì)顯示一行您輸入了1~_~輸入別的就沒有任映好了,先回顧到這,現(xiàn)在講SET其他功setSET的幫助我們發(fā)SET除了我上面SETSET/P這兩種語法外,還有如下幾種語SET/A環(huán)境變量替換已如下增%PATH:~-%PATH:~0,-SET/Aexpression/A令行開關(guān)指定等號(hào)右邊的字符串為被評(píng)估的數(shù)字表達(dá)式。該表達(dá)式 !~ 元運(yùn)算* 數(shù)運(yùn)算 數(shù)運(yùn)算 輯移&位^位|位=*=/=%=+=-&=^=|=<<= 達(dá)式分隔set的/A參數(shù)就是讓SET可以支持?jǐn)?shù)學(xué)符號(hào)進(jìn)行加減等一些數(shù)算!現(xiàn)在開始舉例子介紹這些數(shù)學(xué)符號(hào)看例里的例子請(qǐng)直CMD拷貝命令運(yùn)行,不需要保BAT!set/avar=1+1set/a法var量11學(xué)式拷貝運(yùn)行后會(huì)直接顯示一個(gè)2,或者運(yùn)行完后我們輸入echovar%,也是二,這就是set/avar=21果是多少呢?如果你看不到結(jié)echovar%.....set/avar=2*2乘法運(yùn)算set/avar=22除法運(yùn)set/avar=(1+11+1)結(jié)果等4得懂吧set/aa=1+1,b=2+1,c=3+1行后會(huì)顯示4,但我們echo%a%%b%%c%后看結(jié)果,會(huì)發(fā)現(xiàn)其他數(shù)算也有效果!,這就是"斗"號(hào)作用有時(shí)候我們需要直接在原變量進(jìn)行加減操作就可以用這種語set/avar+=1樣的語法對(duì)應(yīng)原始語法就是set/avarvar1都是一樣的結(jié)果,在原變量的值上在進(jìn)行數(shù)算,不過這樣寫簡單一點(diǎn)set/a其他都這么用,只要幫助里有這個(gè)另外還有一些用邏輯或取余操作符,這些符號(hào),按照上面的使用方報(bào)錯(cuò)比如我CMD輸入setavar=1&1與運(yùn)算",他并不會(huì)顯示為1,而是報(bào)為什么?對(duì)于這樣的"邏輯或取余操作符",我們需要把他們引號(hào)引起來,看例set/avar1&"1樣結(jié)果就顯示出來了,其他邏輯或取余操作符set/avar=1"+"1異運(yùn)算set/avar=1"%"1取模運(yùn)算set/avar22次方運(yùn)set/avar=4">>"2這個(gè)不太記得數(shù)學(xué)里的叫法.... 這些符號(hào)也可以用&^|樣的簡單用set/avar"&1setavarvar&1注意引好符號(hào)說到這,現(xiàn)在說%PATH:str1=str2%這個(gè)是替換變量值的內(nèi)容,看例子@echosetecho換前的a%"setvar=%a:=%echo換后的var%"對(duì)比一下,我們發(fā)現(xiàn)他把變量%a%的空格給替換掉了,從這個(gè)例子,我們就可以%PATH:str1=str2%這個(gè)操作就是把變量%PATH%的里的str1全部用str2替比如我們把上面的例子改成這@echooffecho替換前的值:"%a%"setvar=%a:.=傷腦筋%echo換后的var%"setvar=%a:.=傷腦筋setvar量a要進(jìn)行字符替換的變量的值,"."為要替換的值,執(zhí)行后就會(huì)把變量%a%里面的"."全部替換為"傷腦筋"這就是set的替換字符的很好的功能!先講到這%PATH:~10,5%這個(gè)什么意思,看例子@echooffsetvar=%a:~1,2%echo%var% 怎么只顯示了第2個(gè)字母和第3個(gè)字母"bs",分析一結(jié)果我們就可以很容易看%PATH:~10,5%就是顯示變PATH里指定幾位的值!setvar=%a:~1,2%setvar量a進(jìn)行字符操作的變量1"從變量"a"第幾位開始顯示2"顯示和起來就是把變量a的值從第一位開始,把后兩位賦予給變量就樣因該明白了吧其他兩種語%PATH:~-%PATH:~0,-他們也是顯示指定變量指定幾位的值得的意%PATH:~-10@echooffsetvar=%a:~-3%echo%var%這個(gè)就是把變量a3位的值給當(dāng)然我們也可以改成這@echooffsetvar=%a:~3%echo%var%這個(gè)就是把變量a的從3位開始后面全部的值給變量%PATH:~0,-2%@echooffsetvar=%a:~0,-3%echo%var%執(zhí)行后,我們發(fā)現(xiàn)顯示的是"bbs.verybat",少了從結(jié)果分析,很容易分析出,這是把變量a的值從0位開始,到倒數(shù)第三位之間的值全部賦予給var如果改成這@echooffsetvar=%a:~2,-3%echo%var%那么他就是顯示從第2位開始減去倒數(shù)三位字符的值,并賦予給變量這是一篇技術(shù),真心誠意會(huì)用很簡單的文字表達(dá)清楚自己的意思,只要你識(shí)字就能看懂就能學(xué)到知識(shí)寫這篇的目的是讓每一個(gè)看過這些文字的朋友記住一句話:如果愛可以讓事情變的更簡單,那么就讓它簡單吧!看這篇的方法,就是慢!慢慢的,如同品一個(gè)女人、一杯茗茶,你會(huì)發(fā)現(xiàn)很多以前就在眼前的東西突然變的很遙遠(yuǎn),而有些很遙遠(yuǎn)的東西卻又突然回到了眼前。..先概述一下批處理是個(gè)什么東東。批處理的定義,至今我也沒能給出一個(gè)合適 多高手們也都沒給出----反正我不知道---看了我也不一定信 我是個(gè)菜鳥當(dāng)然更不用說了;但總結(jié)出一個(gè)“比較合適的而且我也相信自己可以把它解釋的很清楚,讓的菜鳥都知道這是個(gè)什么東東,你用這個(gè)東東可以干什么事情?;蛟S你會(huì)因?yàn)檫@篇文章而“無條件愛上批處理,那么目的就達(dá)到了我就是要讓你愛上它我就這么拽,你能怎么著??真的,愛有時(shí)候就這么拽,就是這么沒理由,就是這么不要臉!真的!按照理解,批處理的本質(zhì),是一堆DOS命令按一定順序排列而形成的集合OK,neverclaverandgettobusiness(閑話少說言歸正傳。批處理,也稱為批處理英文譯為BATCH批處理文件后綴BAT就取的前三個(gè)字母它的構(gòu)成沒有固定格式,只要遵守以下這條就ok了每一行可視為一個(gè)命令每個(gè)命令里可以含多條子命令從第一行開始執(zhí)行直到最后一行結(jié)束它運(yùn)行的平臺(tái)是DOS批處理有一個(gè)很鮮明的特點(diǎn):使用方便、靈活,功能強(qiáng)大,自動(dòng)化程度高。我不想讓自己寫的枯燥無味,因?yàn)闋坷p到代碼(批處理的內(nèi)容算是代碼吧?)的問題本來就是枯燥的,很少有人能面對(duì)滿屏幕的代碼而靜下心來。所以我會(huì)用很多簡單實(shí)用的例子讓讀這篇 的朋友去體會(huì)批處理的那四射的,感受它那古靈精怪的性格,不知不覺中愛上批處理(暈,怎么又是愛?到底批處理和愛有什么關(guān)系?答案:沒有DOS基礎(chǔ)一定要牢!當(dāng)然腦子靈活也是很重要的一方面。例一、先給出一個(gè)最easy的批處理讓大家和它混個(gè)臉熟,將下面的幾行命令保存name.bat然后執(zhí)行(以后文中只給出代碼,保存和執(zhí)行方式類似 >a.txt>>a.txt>>a.txt>>a.txt>>a.txt>>a.txt>>a.txt>>a.txt是不是都能看的懂?是不是很easy?但它的作用卻是很實(shí)用的,執(zhí)行這個(gè)批處理后,可以在你的當(dāng)前盤建立一個(gè)名為a.txt的文件,它里面記錄的信息可以幫助你迅速找到速度最快的服務(wù)器,從而遠(yuǎn)離“從服務(wù)器中轉(zhuǎn)”那一痛苦的過程。這里>的意思,是把>>>前一行得出的結(jié)果的后面,具體的說是下一行,而前面一行命令得出的結(jié)果將保留,這樣可以使這個(gè)a.txt文件越來越大(想到如何搞破壞了??。Bytheway,這個(gè)批處理還可以和其令結(jié)合,搞成完全自動(dòng)化判斷服務(wù)器速度的東東,執(zhí)行后直接顯示速度最快的服務(wù)器IP,是不是很爽?后面還將詳細(xì)介紹。例二、再給出一個(gè)已經(jīng)過時(shí)的例子(a.bat@echoifexistC:\Progra~1\Tencent\AD\*.gifdelC:\Progra~1\Tencent\AD\*.gif為什么說這是個(gè)過時(shí)的例子呢?很簡單因?yàn)楝F(xiàn)在已經(jīng)幾乎沒有人用帶的(KAO,還顯示好友三圍呢,所以它幾乎用不上了。但曾經(jīng)它的作用是不可小窺的:刪除的,讓框干干凈凈。這里用的地址是的默認(rèn)安裝地址,默認(rèn)批處理文件名為a.bat,你當(dāng)然可以根據(jù)情況自行修改。在這個(gè)中使用了if命令,使得它可以達(dá)到適時(shí)判斷和刪除的效果,你只需要不關(guān)閉命令執(zhí)行后的DOS窗口,不按CTRL+C強(qiáng)行終止命令它就一直監(jiān)視是否有 (也再不斷查看自己的是學(xué)會(huì)批處理!真心想學(xué)很例三,使用批處理查是否中。內(nèi)容如下@echonetstat-a-n>typea.txt|find"7626"&&echo"Congratulations!Youhaveinfecteddela.txtpause&exit這里利用了netstat命令,檢查所有的網(wǎng)絡(luò)端口狀態(tài),只需要你清楚常見木馬所使用的端口就能很easy的判斷出來是否種了然這不是確定的因?yàn)槟J(rèn)的端口7626,完全可以修改。這里介紹的只是方法和思路。這里介紹的是方法和思路稍做改動(dòng),就變成可以檢查其他木馬的了,再改動(dòng)一下,加進(jìn)去參數(shù)和端口及信息列表文件后,就變成自動(dòng)檢測所有木馬的了。呵呵,是不是很過癮?中還利用了組合命令&&和管道命令|,后面將詳細(xì)介紹。例四,借批處理自動(dòng)清除系統(tǒng),如下@echoifexistc:\windows\temp\*.*delifexistc:\windows\Tempor~1\*.*delc:\windows\Tempor~1\*.*ifexistc:\windows\History\*.*delc:\windows\History\*.*ifexistc:\windows\recent\*.*delc:\windows\recent\*.*將以上內(nèi)容保存到autoexec.bat里,每次開機(jī)時(shí)就把系統(tǒng)給自動(dòng)刪除了。這里需要注意兩點(diǎn):一、DOS不支持長文件名,所以就出現(xiàn)了Tempor~1這個(gè)東東;二、可根怎么樣,看到這里,你對(duì)批處 是不是已經(jīng)有點(diǎn)了?是不是發(fā)現(xiàn)自己已經(jīng)慢愛上了這個(gè)東東?別高興的太早,愛不是一件簡單的事,它也許能帶給你和,當(dāng)然也能讓你痛苦的想去。如果你知道很難還敢繼續(xù)的話,I服了YOU!繼續(xù)努力(酸、苦和辣,有沒有甜天知道。為什么會(huì)把批處理和愛情扯上關(guān)系?不是我無聊,也不是因?yàn)檫@樣寫有趣多少,原因有(我不懷疑自己的表達(dá)能力,而是事情本身就不好說清楚,說了=沒說,但用地球人都知道的愛情一比喻(愛情是什么?我**,沒準(zhǔn)你心里一下就亮堂了,事半功倍,何樂而不為?其二,我這段時(shí)間狀態(tài)不是很好,感冒發(fā)燒頭疼鼻塞,但主要還是感情上精神摧殘,搞的人煩透了,借寫之際感慨幾句,大家就全當(dāng)買狗皮膏藥了,完全可以省略不看(也許還真有點(diǎn)效果----不至于讓你就睡著了,把頭磕了來找我報(bào)銷費(fèi)。說不定下次的中大家還會(huì)看到、等金老前輩筆下的們。看過第一章的朋友,一定對(duì)批處理有了初步的印象,知道它到底是用來干什么的了。但你知道運(yùn)用批處理的精髓在哪里嗎?其實(shí)很簡單:思路要靈活!沒有做不到的,只有想不到的。這和愛情就有點(diǎn)不同了,因?yàn)閻矍榈氖澜缡莾蓚€(gè)人的世界,一廂情愿不叫愛情(補(bǔ)充那叫單戀廢話而批處理卻是一個(gè)人的你可以沒有達(dá)不到的境界!批處理看起來雜亂無章,但它的邏輯性之強(qiáng),絕對(duì)不比其他程序語言(如匯編)低,如果你寫的是一堆亂麻,雖然每一行命令都正確,但從頭執(zhí)行到尾后,不一定得到你想要的結(jié)果,也許是一屏幕的Badcommandorfailname。這又和愛情有了共同點(diǎn):按步驟來經(jīng)營,缺少或增多的步驟都可能導(dǎo)致不想看見的結(jié)果。陷入愛河的朋友,相信沒有不肯定這句話的。愛情批處理,輸出的結(jié)果不是Badcommandorfailname,屏幕是這么顯示的‘你的愛情不是或外部命令也不是可運(yùn)行的程序或批處理文件。然后就是光標(biāo)不停閃動(dòng),等待這下一次錯(cuò)誤的輸入。從這一章開始,將由淺入深的介紹批處理中常用令,很多常見DOS命令在批處理腳本中有這廣泛的應(yīng)用它們是批處理的BODY部分但批處理比DOS更靈活多樣更DOS(相對(duì)來說)的DOS命令,常用命令如COPY、DIR等就不做介紹了(這些看似簡單令實(shí)際復(fù)雜的很,自己都說不清楚。例五先看一個(gè)實(shí)例這是一個(gè)很有意思的一個(gè)小巧實(shí)用的好東東把批處“自動(dòng)化的特點(diǎn)體現(xiàn)的淋漓盡致先介紹一下這個(gè)的來歷大家都知道匯編程(MASM)的上機(jī)過程,先要對(duì)源代碼進(jìn)行匯編、連接,然后再執(zhí)行,而這中間有很多環(huán)節(jié)需要輸(只有經(jīng)歷過的朋友才懂得編課程設(shè)計(jì)時(shí),我“被”寫了這個(gè),用起來很爽,呵呵??纯磧?nèi)容:@echo::closeecho::cleanechoThisprogrammeistomaketheMASMprogramme::displayechoEditby::displayechoMailtome ::displayif"%1"==""goto::ifinputwithoutparamatergotousageif"%1"=="/?"gotousage::ifparamateris"/?"gotousageif"%1"=="help"gotousage::ifparamateris"help"gotousage::pausetoseeusagemasm%1.asm::assemblethe.asmiferrorlevel1pause&edit::iferrorpausetoseeerrormsgandeditthecodelink%1.obj&%1::elselinkthe.objfileandexecutethe.exe::setechoUsage:ThisBATfilename[asmfilename]echoDefaultBATfilenameisSTART.BAT::display先不要被這一堆的東西給嚇怕了,靜下心來仔細(xì)的看(回想一下第一章中第一段是怎么E文(害怕E文的朋友也不用擔(dān)心,都很easy,一看就懂了,實(shí)在不懂了不會(huì)查詞典啊,這么懶?在執(zhí)行時(shí)不顯示也不起任何作用倒數(shù)第5行行首有一個(gè)冒號(hào)可不是筆誤哦!具體作用后面會(huì)詳細(xì)講到。此中masm和link是匯編程序和連接程序,必須和edit程序以及你要編輯的源代(當(dāng)然還有這個(gè)廢話一起在當(dāng)前 中使用這個(gè)批處理可以最大可能的減少手工輸入整個(gè)過程中只需要按幾下回車鍵,即可實(shí)現(xiàn)從匯編源代碼到可執(zhí)行exe文件的自動(dòng)化轉(zhuǎn)換,并具備智能判斷功能:如果匯編時(shí)源代碼出現(xiàn)錯(cuò)(匯編不成功則自動(dòng)暫停顯示錯(cuò)誤信息并在按任意鍵后自動(dòng)進(jìn)入編輯源代碼界面如果源代碼匯編成功則進(jìn)行連接并在連接后自動(dòng)執(zhí)行生成的exe文件。另外,由于批處理命令的簡單性和靈活性,這個(gè)還具備良好的可改進(jìn)性,簡單進(jìn)行修改就可以符合不同朋友的上機(jī) 正在學(xué)匯編的朋友一定別忘了實(shí)下!在這個(gè)中出現(xiàn)了如下幾個(gè)命令:@、echo、::、pause、:和goto、%以及if。而這一1、,這個(gè)符號(hào)大家都不陌生的必備符號(hào)它怎么會(huì)跑到批處理中呢?呵呵不是它的錯(cuò),批處理本來就離不開它,要不就不完美了。它的作用是讓執(zhí)行窗口中不顯示它后面這一行令本身(多么繞口的一句話。呵呵,通俗一點(diǎn)說,行首有了它的話,這一行令就不顯示了。在例五中,首行的@echooff中,@的作用就是讓在執(zhí)行時(shí)不顯示后面的echooff部分。這下懂了吧?還是不太懂?沒關(guān)系,看完echo命令簡介,自然就懂了。,2、echoon和echooff兩個(gè)命令了。直接執(zhí)行echo命令將顯示當(dāng)前echo命令狀態(tài)(off或on)執(zhí)行echooff將關(guān)閉回顯,它后面的所有命令都不顯示命令本身只顯示執(zhí)行后的結(jié)果除非執(zhí)行echoon命令在例五中首行令和echooff命令,達(dá)到了兩個(gè)目的:不顯示echooff命令本身,不顯示以后各行中的命令本身。的確是有點(diǎn)亂,但你要是練下的話,3分鐘包會(huì),不會(huì)的退錢!echo命令的另一種用法一可以用它來顯示五中倒數(shù)第二行DefaultBATfilenameisSTART.BAT將在執(zhí)行后的窗口中顯示,而echo命令本身不顯示(為什??echo命令的另一種用法二:可以直接編輯文本文件。例六echonbtstat-A>a.batechonbtstat-A>>a.batechonbtstat-A>>以上內(nèi)容的編輯方法是,直接是命令行輸入,每行一回車。最后就會(huì)在當(dāng)前 生成一個(gè)a.bat的文件,直接執(zhí)行就會(huì)得到結(jié)果。3這個(gè)命令的作用很簡單,它是注釋命令,在批處理中和rem命令等效。它后面的內(nèi)容在執(zhí)行時(shí)不顯示也不起任何作用因?yàn)樗皇亲⑨屩皇窃黾恿说目勺x性和C語言中的/**/類似。地球人都能看懂,就不多說了。4、(看看你的workman上命令,單純、實(shí)用。它的作用,是讓當(dāng)前程序進(jìn)程暫停一下,并顯示一行信息:請(qǐng)按任意鍵繼續(xù)。在例五中這個(gè)命令運(yùn)用了兩次,第一次的作用是讓使用者看清楚程序信息,第二個(gè)是顯示錯(cuò)誤的匯編代碼信息(其實(shí)不是它想顯示,而是masm程序在顯示錯(cuò)誤5為什么要把這兩個(gè)命令介紹?因?yàn)樗鼈兪欠植婚_的,無論少了哪個(gè)或多了哪個(gè)都會(huì)出錯(cuò)。goto是個(gè)跳轉(zhuǎn)命令,:是一個(gè)。當(dāng)程序運(yùn)行到goto時(shí),將自動(dòng)跳轉(zhuǎn)到:定義的部分去執(zhí)行了(是不是分不開?。例五中倒數(shù)第5行行首出現(xiàn)一個(gè):,則程序在運(yùn)行到goto時(shí)就自動(dòng)跳轉(zhuǎn)到:定義的部分執(zhí)行,結(jié)果是顯示usage(usage就是名稱。不難看出,goto命令就是根據(jù)這個(gè)冒號(hào)和名稱來尋找它該跳轉(zhuǎn)的地方,它們是一一對(duì)應(yīng)的關(guān)系goto命令也經(jīng)常和if命令結(jié)合使用至于這兩個(gè)命令具體用法,goto命令的另一種用法一:提前結(jié)束程序。在程序中間使用goto命令跳轉(zhuǎn)到某一,goto這里:end在最后一行其實(shí)這個(gè)例子很弱智后面講了if命令和組合命令你就知道6(多個(gè)%一起使用的情(看看例五中有多少地方用到它?,少了它批處理的功能就減少了51%了。看看例七:netuse\\%1\ipc$%3copy11.BAT\\%1\admin$\system32/ycopy13.BAT\\%1\admin$\system32/ycopyipc2.BAT\\%1\admin$\system32/ycopyNWZI.EXE\\%1\admin$\system32attrib\\%1\admin$\system32\10.bat-r-h-password執(zhí)行形式為文件名參數(shù)一參數(shù)二……假設(shè)這個(gè)被保存為a.bat,則執(zhí)行形式如下:aIPusernamepassword。這里IP、username、password是三個(gè)參數(shù),(因?yàn)槌绦虿荒苷_運(yùn)行,并不是因?yàn)樯倭藚?shù)語法就不對(duì))這樣在執(zhí)行換1%2%和3%,這樣就達(dá)到了靈活運(yùn)用的目(試想如果在中直接把IPusername和password都定義死,那么的作用也就被固定了,但如果使用%的話,不同的參數(shù)關(guān)于這個(gè)參數(shù)的使用,在后續(xù)章節(jié)中還將介紹。一定要非常熟練才行,這需要很多練習(xí)過程,需要下點(diǎn)狠工夫!if它不容易說清楚,下一章再講了!這一章講的這點(diǎn)東西,如果你是初學(xué)者,恐怕也夠消化的了。記住一句話:DOS是批處理的BODY,任何一個(gè)DOS命令都可以被用在批處理腳本中去完成特定的功能。到這里,你是否已經(jīng)想到了用自己肚子里的東西去寫點(diǎn)帶有自動(dòng)化色彩的東東呢?很簡單,就是一個(gè)DOS命令的集合而已,相信自稱為天才的你已經(jīng)會(huì)把計(jì)算機(jī)等級(jí)考試上機(jī)試題中的DOS部分用批處理來自動(dòng)化完成了。煩!就好象一個(gè)半老女人到了更年期,什么事都想嘮叨幾句,什么事都感到不舒服,看誰誰不爽。明知山有虎,偏向虎山行,最后留下一身無功而返時(shí),才發(fā)現(xiàn)自己竟然如此脆弱,如此渺小,如此一擊。徘徊在的邊緣,突然回想起了自己最后一次扁人的那一刻,還真有點(diǎn)(其實(shí)我很不喜歡扁人,更不喜歡扁。我需要發(fā)泄,我用手指拼命的敲打著鍵盤,在一陣接一陣有節(jié)奏中,屏幕上出現(xiàn)了上面的這些文字。可難道這就是發(fā)泄的另式嗎?還是厲害,早在幾千年前孔老夫子就**心,以脾氣,既然決定寫這篇,就一定會(huì)盡力去寫好,寫完美,絕對(duì)不給自己留下遺憾,要不這就不是我寫的!曾經(jīng)有一篇經(jīng)典的批處理出現(xiàn)在你的屏幕上,你沒有保存,直到找不到它的你才后悔莫及,最大的痛苦莫過于此。如果上天能給你一個(gè)再看一次的機(jī)會(huì),你會(huì)對(duì)那篇說三個(gè)字:我愛你!如果非要給這份愛加上一個(gè)期限,你希望是100年。因?yàn)?00年后,你恐怕早已經(jīng)掛了!而現(xiàn)在,你的屏幕上出現(xiàn)了這篇你正在看的批處理教程,雖然不如你曾經(jīng)看的那篇經(jīng)典,但如果勉強(qiáng)還過的去。你會(huì)愛它嗎?時(shí)間會(huì)有50年批處理中最重要的幾個(gè)命令,將在這一章詳細(xì)介紹,但是很遺憾,有些細(xì)節(jié)到現(xiàn)在我都沒掌握的很好,甚至還有些生分。如同還不太懂得愛一樣。但我一直都在努力,即使一直都沒有收獲。所以可能講的會(huì)比較籠統(tǒng),但我會(huì)告訴你方法,剩下的就是時(shí)間問題了,需要自己去磨練。讓我們共同努力吧。冰凍三尺非一日之寒,滴水穿石非一日之功。有些事情,比如學(xué)批處理,比如愛一個(gè)人,都是不能速成的,甚至還會(huì)有付出艱辛而收獲為甚微的情況。再次重申,看這篇的時(shí)候,一定要靜下心來,除非你已經(jīng)掌握了這篇的所有東西但那也就不必看了,浪費(fèi)時(shí)間!7、接上一章,接著講if命令。總的來說,if命令是一個(gè)表示判斷令,根據(jù)得出的每一、輸入判斷。還是用例五里面的那幾句if"%1"==""gotousageif"%1"=="/?"gotousageif"%1"=="help"goto這里判斷輸入的參數(shù)情況,如果參數(shù)為空(無參數(shù),則跳轉(zhuǎn)到usage;如果參數(shù)為/?或help(/?或help個(gè)看起來更像一個(gè)真正的程序,也跳轉(zhuǎn)到usage。這里還可以用否定形式來表ifnot"%1"==""gotousage,則表示如果輸入?yún)?shù)不為空就跳轉(zhuǎn)到usage()是不是很簡單?其實(shí)翻譯成中文體會(huì)一下就understand了。、存在判斷。再看例二里這句ifexistC:\Progra~1\Tencent\AD\*.gifdel如果存在那些gif文件,就刪除這些文件。當(dāng)然還有例四,都是一樣的道理。注意,這里的條件判斷是判斷存在的,當(dāng)然也可以判斷不存在的,例如下面這句“如果不存在那些gif文件則退出:ifnotexistC:\Progra~1\Tencent\AD\*.gifexit。只是多一個(gè)not來表示否定而已。、結(jié)果判斷。還是拿例五開刀(沒想到自己寫的,竟然用處這么大,呵呵masmiferrorlevel1pause&edit%1.asmlink%1.obj先對(duì)源代碼進(jìn)行匯編,如果失敗則暫停顯示錯(cuò)誤信息,并在按任意鍵后自動(dòng)進(jìn)入編輯界link程序連接生成的objif&命(DOS程序在運(yùn)行完后都有返回碼(這里定義的錯(cuò)誤碼為1(這里相應(yīng)的操作為pause&edit%1.asm部分。另外,和其他兩種用法一樣,這種用法也可以表示否定。用否定的形式仍表達(dá)上面三句的意思,代碼變?yōu)椋簃asmifnoterrorlevel1link%1.objpause&edit%1.asm看到本質(zhì)了吧?其實(shí)只是把結(jié)果判斷后所執(zhí)行令互換了一下“ifnoterrorlevel1”和“iferrorlevel0”的效果是等效的,都表示上一句masm命令執(zhí)行成功(因?yàn)樗清e(cuò)誤判斷,而且返回碼為0,0就表示否定,就是說這個(gè)錯(cuò)誤不存在,就是說masm執(zhí)行成功。這里是否加not,錯(cuò)誤碼到底用0還是1,是值得考慮的兩個(gè)問題,一旦搭配不成功就肯定出錯(cuò),所以一定要體會(huì)的很深刻才行。如何體會(huì)的深刻?練習(xí)!自己寫一個(gè)然后把有not和沒有not的情況返回碼為0或1的情況分別寫進(jìn)去執(zhí)(怎么,嫌麻煩?。颗帕薪M合算一下才四中情況你就嫌麻煩了?后面介紹管道命令和組合命,這樣從執(zhí)行的結(jié)果中就能很清楚的看出這兩種情況的區(qū)別。這種用errorlevel結(jié)果判斷的用法是if命令最難的用法,但也恰恰是最有用的用法,如果你不會(huì)用errorlevel來判斷返達(dá)到相同的效果必須用else來表否masmifexist%1.objlinkelsepause&edit關(guān)于if命令的這三種用法就say應(yīng)手,主要是熟練程度的問題??赡苡械呐笥延悬c(diǎn)驚訝,我怎么沒給出類似下面三行的ifif/?”就能看到,我沒有必要在這里多費(fèi)口舌;更重要的原因,是我覺得這樣介紹的不清if是,這三種用法的格式各不相同,而且也是不能改變的,但實(shí)際上可以互換(以為從本質(zhì)上講,這三種用法都是建立在判斷的基礎(chǔ)上的,哲學(xué)教我們學(xué)會(huì)透過現(xiàn)象看事物本質(zhì)。有的朋友可以自己研究一下。IF[NOT]ERRORLEVELnumberdocommandIF[NOT]string1==string2docommandIF[NOT]EXISTfilenamedocommand8、學(xué)過匯編或Ccall。在批處理中,call命令用來從一個(gè)批處理中調(diào)用另一個(gè)批處理??蠢耍J(rèn)的三個(gè)文件名分別為start.bat、10.bat和ipc.batCALL10.BATECHO%IPA%.%1CALLipc.batfor/f"tokens=1,2,3delims="%%iin(%1)docallHACK.bat%%i%%j看的出來!從上面兩個(gè),你可以得到如下信息:1、調(diào)用可以靈活運(yùn)用,循環(huán)運(yùn)用重復(fù)運(yùn)用2調(diào)用可以使用參數(shù)關(guān)于第一點(diǎn)就不多說了聰明的你一看就應(yīng)該會(huì),這里說一下第二點(diǎn)。在start.bat10.bat后面跟了參數(shù)010.bat里的參數(shù)%1用0start.batipc.bat后面跟了參數(shù)ipcfind.tx(,執(zhí)行時(shí)的效果,就是用ipc.bat中的每一行的三個(gè)變量(這里不懂沒關(guān)系,學(xué)過for命令后就懂了,對(duì)應(yīng)代換ipc.bat中的%%i、%%j和%%k。這里參數(shù)調(diào)用是非常靈活的,使用時(shí)需要好好體會(huì)。在初學(xué)期間,可以先學(xué)習(xí)只調(diào)用,至于連的參數(shù)一起使用的情況,在后面的學(xué)習(xí)中自然就會(huì)有比較深刻的理解,這是因?yàn)楫?dāng)你已經(jīng)可以靈活運(yùn)用批處理后,如何使代碼寫的更精簡更完美更高效就自然包括到了考慮的范圍這時(shí)候你就會(huì)發(fā)現(xiàn)在調(diào)用時(shí)直接加入?yún)?shù)可以使代碼效率加倍Bytheway,上面的這幾個(gè),都是Bat.Worm.Muma的一部分,在后面的里,大家將有機(jī)會(huì)見到這個(gè) 的 。那是不是說,在同一個(gè)下至少存在兩個(gè)批處理文件(只有一個(gè)你調(diào)用誰?)?----(默認(rèn)文件名a.bat d%1Thisisacallexample.calla.bat這兩句一結(jié)合,效果自然不怎么樣,因?yàn)橹挥幸慌_(tái)機(jī)器來發(fā)消息,誰怕誰啊?我給你來10010和窗口同時(shí)向一個(gè)目標(biāo)機(jī)器發(fā)消息的話,呵呵。這里calla.bat的作用就是調(diào)用自身,執(zhí)行完前一句ned命令后再調(diào)用自身,達(dá)到了循環(huán)執(zhí)行的目的。給出一個(gè)很有意思的有的朋友可以實(shí)驗(yàn)一下例(默認(rèn)文件名為a.batcall一定要在DOS窗口下執(zhí)行,否則只會(huì)看到一個(gè)窗口一閃而過,看不到最后結(jié)果。等執(zhí)行完后當(dāng)被執(zhí)行了1260次別忘了想一下到底是為什么愛情有時(shí)候跟這個(gè)一樣,一旦陷入死循環(huán),最后的結(jié)果都是意想不到的。只是愛情,絕對(duì)不會(huì)等到被毫無理由的循環(huán)這么多次,也許在第三次時(shí)就出現(xiàn)了loveisaborted的提示。9、(我怎么突然想起了這?這個(gè)命令單獨(dú)使用的情況在批處理中是比較少見的因?yàn)闆]什么實(shí)際意義。還是借例三來說明:@echonetstat-a-n>typea.txt|find"7626"&&echo"Congratulations!YouhaveinfectedGLACIER!"dela.txtpause&先用netstat命令檢查是否有默認(rèn)的端口7626在活動(dòng),并把結(jié)果保存到a.txt中。然后使type令列a.txt的內(nèi)容,再在列出的內(nèi)容中搜索字符串“7626發(fā)現(xiàn)有的話則提示中了,否則退出。看,find命令其實(shí)就這么簡單,但有一點(diǎn)必須要注意到:如果不使用type命令列出a.txt中的內(nèi)容,而是直接使用find命令在a.txt中找7626(finda.txt"7626"&&echoCongratulations!YouhaveinfectedGLACIER!",就必須得給出這個(gè)a.txt的絕對(duì)路徑(我試過了,find并沒有默認(rèn)路徑就是當(dāng)前路徑的功能,必須手動(dòng)指定。也許是我錯(cuò)了,歡迎指正。因find令的幫助里有這么一句話:如果沒有指定路徑,find搜索鍵入的或者由另一個(gè)命令產(chǎn)生的文字。這里的“另一個(gè)命令”自然就type令了。至于find命令的其他幾個(gè)參數(shù)如v、n、i等,有的朋友自己去研究吧,這已經(jīng)屬于DOS學(xué)習(xí)的內(nèi)容了這里就不做介紹關(guān)于find命令和其令的一些更精妙的用(有些簡直令人叫絕,后續(xù)的中將介紹,希望關(guān)注。10、for、set、為什么把這三個(gè)命令放到一起來講?原因除了我說明外,恐怕誰也想不到!很簡單的一句話:其實(shí)我也不太懂!是的,對(duì)于這兩個(gè)命令,我是從研究Bat.Worm.Muma開始學(xué)習(xí)的,時(shí)間過去了不少,但還是沒完全搞明白,講出來連自己都看不懂,我更怕不講錯(cuò)了成了罪人。所以我給出一個(gè)去告訴你,如何讓這兩個(gè)命令給自己留一個(gè)初步的印象,其實(shí)也就是這兩個(gè)命令的入門,而并不是說如何這兩個(gè)命令。因?yàn)橐绱司畹膬蓚€(gè)命(特別是for談何容易也許你會(huì)表揚(yáng)我說我誠實(shí)不懂就不懂;也許你會(huì)罵我,讓我既然不懂就趕緊滾蛋,不要在這里丟人顯眼;也許你還會(huì)說一些別的這樣那樣好聽或不好聽的話,都隨便你了,即使我不同意你說的話,我也會(huì)誓死捍衛(wèi)你說話的權(quán)利。看例十一:@echofor/?>for.txtset/?>set.txtshift/?>shift.txt執(zhí)行后在當(dāng)前路徑下就生成for.txtset.txt和shift.txtforset命令和shift上曾經(jīng)找了很長時(shí)間這三個(gè)命令的,但都不理想,基本都是照搬的幫助信息。在自己完全掌握了這兩個(gè)命令后,一定要寫一篇用自己的文字總結(jié)出來的for、set和shift(關(guān)于shift命令,后面介紹批處理的參數(shù)時(shí)還將涉及到,一定會(huì)的,這是舉了一些例子,但這是遠(yuǎn)遠(yuǎn)不夠的。要掌握這兩個(gè)命令,最需要的就是耐心!沒寫錯(cuò),就是耐心。光是認(rèn)真看完它們的幫助文字就已經(jīng)需要足夠的耐心了,要進(jìn)一步練習(xí)CALLMUMA.BATSETIPA=192.168CALL10.BAT0netstat-n|find":"FOR/F"tokens=7,8,9,10,12delims=.:"%%IIN(A.TMP)DOSETNUM1=%%I&&SETNUM2=%%J&&SETNUM3=%%K&&SETNUM4=%%L&&SETNUM5=%%M&&CALLNEAR.BATCALLSETECHOSTART>%IPA%.%NUM3%.1>B.TMP%IPA%.%NUM3%.%NUM4%>>B.TMPFIND/C/I"from"IFERRORLEVEL1GOTOSTARTCALL10.BAT%NUM3%DELA.LOGGOTOSTART這是Bat.Worm.Muma的起始,設(shè)置了運(yùn)行的環(huán)境變量。是不是看的頭都大了?又忘了寫在第一章第一段的那句話(靜下心來,你應(yīng)該能體會(huì)到學(xué)習(xí)這兩個(gè)命令所需要的耐心了吧。就如同去愛一個(gè)人,你得學(xué)會(huì)寬容,打不得罵不得,用你寬大的胸懷去包容一切,即使你發(fā)現(xiàn)愛過程如看上面代碼的過程一樣讓你頭大,但你還是得愛下去愛需要理由嗎?不需要嗎?需要嗎?不需要嗎……等到風(fēng)平浪靜后,最直觀的收獲就是,你的耐心變的前所未有的充足,面對(duì)復(fù)雜和善變,你自己會(huì)處變不驚,以自己的方式去從容應(yīng)付曾經(jīng)應(yīng)付不了的場面,即使到最后一身,也會(huì)感慨曾經(jīng)的舉動(dòng)有多么偉大。沒錯(cuò),這就是批處理的,這就是愛的。讓你受了傷還感謝傷你的人。這種感覺就好象在自己最喜歡的音樂聲中,痛并著。不得不再次重申一遍,各種DOS令是批處BODY(我實(shí)在找不出一個(gè)更合適的詞來形容他們之間的關(guān)系學(xué)好DOS命令是學(xué)好批處理的前提。其他DOS命令如copy、dir、del、type、path、break、start等命令,以及、net、cmd、at、sort、attrib、fc、find等外部命令,在批處理里的應(yīng)用非常廣泛。這篇的作用,是教你認(rèn)識(shí)批處理,以及如何利用DOS命令組合出來一個(gè)完美的批處理,去讓它自動(dòng)完成你想要它做的事情。而靈活自如的編輯一個(gè)批處理是建立在熟練掌握DOS命令的基礎(chǔ)上的,不知不覺中第三章已經(jīng)結(jié)束了耳麥里傳來的依然是《比我每隔4分32秒就自動(dòng)重播。雖然我不并不很喜歡,可這并不妨礙我喜歡音樂,喜歡這首描寫的如此讓人感慨的歌請(qǐng)你一定要比我/才不枉費(fèi)我狼狽退出/再痛也不說苦/愛不用抱歉來彌補(bǔ)/至少我能成全你的追逐/請(qǐng)記得你要比我/才值得我對(duì)自己/我默默的倒數(shù)/最后再看清楚/看你眼里的我好饃糊/慢慢被放逐我如同一個(gè)因年老失色而拉不到客的老女,絕望的徘徊在曾經(jīng)輝煌的紅燈區(qū),用一臉的木然瞟一眼來來去去的人群,默默的回憶自己并不光彩的過去,幻想自己將要面對(duì)的未來。直到看見那些依偎在一起的情侶們,才突然間發(fā)現(xiàn)上帝的公平,和這種公平的??梢哉f,批處理中最重要的幾個(gè)命令我都沒有給出如echo或if那樣比較詳細(xì)的介紹,原因我已經(jīng)說了,因?yàn)槲乙彩莻€(gè)菜,我也不太懂但我正在學(xué)!你呢?今了一趟館淘金一樣發(fā)現(xiàn)了一本《DOS批文件的東東藏在一個(gè)角落里落滿了灰,思講,已經(jīng)有點(diǎn)timeout了,很多東西已經(jīng)基本沒有利用的價(jià)值(這就是信息時(shí)代的更新速度一番,連同那幾個(gè)不熟悉令一起搞熟了,再續(xù)寫這篇。我始終堅(jiān)信,沒有最好只有更好。但是很可惜,等到下午再去的時(shí)候,館樓梯口已經(jīng)立了一個(gè)牌子,上面寫著outof 人家這學(xué)期的工作結(jié)束了。于是回到宿舍打算繼續(xù)寫第四章,正在這時(shí)又到一個(gè)“振奮人心”的消息:期末考試有一科掛了,而且是全班第 這一門整個(gè)里就掛了我一個(gè)。郁悶的情緒剎那間涌上心頭,整個(gè)世界仿佛都變成黑的了。和小賣部已經(jīng)陸續(xù)關(guān)門,學(xué)校里的人越來越少,迎面過來的幾個(gè)同學(xué)也都一身行李,忙碌著準(zhǔn)備回家過年,內(nèi)心的孤寂和失落如同夏日里暴雨前的烏云,迅速而不可抗拒的占領(lǐng)了心里每一個(gè)角落。迎著一月的冷風(fēng)我一個(gè)人在天橋上發(fā)呆,還能怎么樣,連期末考試都應(yīng)付不了。“課間休息”時(shí)間好象長了點(diǎn),呵呵,上課了!從這一章開始,將詳細(xì)介紹批處理中常用的幾個(gè)組合命令和管道命令。這些命令雖然不是必須的,如同愛一個(gè)人時(shí)不一定非得每天去陪,但如果少了這個(gè)過程,事情就會(huì)變的復(fù)雜而不完美,所以我認(rèn)為管道命令和組合命令是批處理的調(diào)味劑,幾乎是少不了的。下面從管道命令講起。常用的管道命令有以下這些:|11、這個(gè)命令恐怕大家不是很陌生,經(jīng)常操作DOS的朋友都應(yīng)該知道,當(dāng)我們查看一個(gè)命令的幫助時(shí),如果幫助信息比較長,一屏幕顯示不完時(shí)DOS并不給我們時(shí)間讓我們看完一屏幕再翻到另一直接顯示到幫助信息的最如在提示符下輸入help回車時(shí),就會(huì)看到當(dāng)前DOS版本所支持的所有非隱含命令,但你只能看到最后的那些命令,前面help|回車后會(huì)發(fā)現(xiàn)顯示滿一屏幕后就自動(dòng)暫停,等候繼續(xù)顯示其他信息。當(dāng)按寫回車時(shí),變成一個(gè)一個(gè)的出現(xiàn);按下空格鍵時(shí)一屏幕一屏幕顯示,直到全部顯示完為止;按其他鍵自動(dòng)停止返回DOS。為什么會(huì)出現(xiàn)上述現(xiàn)象?答案很簡單,這里結(jié)合了管道命令|DOSmore共同達(dá)到目的這里先簡單介紹一下help命令和more命令對(duì)理解|命令的用法有很特殊,直接在DOS提示符下輸入help命令,結(jié)果是讓DOS顯示其所支持的所有非隱含命令,而在其他地方用help命令,如輸入nethelp回車,則是顯示net命令的幫助信息。、more命令??赡芎芏嗯笥岩郧熬蜎]有接觸過這個(gè)命令,這個(gè)命令在Linux下的用(a.txt在DOS提示符下輸入如下兩個(gè)命令去比較一下差別:morea.txt和typea.txt。利用more命令,可typemore命令的作用就是讓輸出的信息逐屏或逐行顯示。|help命令執(zhí)行后顯示的DOSmore以例十三和下面的例十四是等效的help>a.txtmorea.txtdela.txt這里利用另一管道命令>生成了一個(gè)a.txt文件作為中間環(huán)節(jié)在用more命令查看a.txt文件后再刪除a.txt文件(例十三的所有操作是在內(nèi)存中進(jìn)行的,不生成文件。可以看|12>會(huì)清除掉原有文件中的內(nèi)容后把新的內(nèi)容寫入原文件,而>>只會(huì)另起一行追加新的內(nèi)容到原文件中,而不會(huì)改動(dòng)其中的原有內(nèi)容。例十五:echo@echooff>echoechoThisisapipelinecommandexample.>>a.batechoechoItisveryeasy?>>a.batechoechoBelieveyourself!>>a.batechopause>>a.batechoexit>>依次在DOS提示符下輸入以上各行命令一行一個(gè)回車將在當(dāng) 下生成一個(gè)文件,里面的內(nèi)容如下@echoechoThisisapipelinecommandexample.echoItisveryeasy?echoBelieveyourself!看到這里,你得到了多少信息?1、可以直接在DOS提示符下利用echo命令的寫入功能編輯一個(gè)文本,而不需要專門的文本編輯工具;2、管道命令>和>>的區(qū)別如上所述。如果這里只用>命令來完成上面操作,最后也會(huì)生成一個(gè)a.bat,但里面的內(nèi)容就只剩下最后一行exit了。所以>和>>一般都用,除非你重定向的輸出只有一行,那么就可以只用>了。結(jié)合例一再仔細(xì)體會(huì)輸出重定向管道命令>和>>的用法。13、<、>&、這三個(gè)命令也是管道命令,但它們一般不常用,你只需要知道一下就ok了,當(dāng)然如果想<,輸入重定向命令,從文件中讀入命令輸入,而不是從鍵盤中讀入>&,將一個(gè)句柄的輸出寫入到另一個(gè)句柄的輸入中<&,剛好和>&相反,從一個(gè)句柄輸入并將其寫入到另一個(gè)句柄輸出中關(guān)于這三個(gè)管道命令的舉例,在后面批處理的精妙應(yīng)用中還將涉及到。下面介紹組合命令:&、&&、||組合命令,顧名思義,就是可以把多個(gè)命令組合起來當(dāng)一個(gè)命令來執(zhí)行。這在批處理腳本里是允許的而且用的非常廣泛它的格式很簡單 既然現(xiàn)在已經(jīng)成了一個(gè)文件了,那么這多個(gè)命令就要用這些組合命令連接起來放在同一 因?yàn)榕幚碚J(rèn)行不認(rèn)命數(shù)目。組合命令的作用,就如同給愛人陪不是,說一句是說,說十句也是說,不好話都說了出來,效果可能會(huì)好 當(dāng)然得排除一種特殊情況:這些話是否有先后序,有些話是否可以同時(shí)說。在批處理里也一樣,有些時(shí)候某些命令是不能同時(shí)執(zhí)行的,后面給你說。剛剛又送走了一個(gè)同學(xué),人去樓空的感覺越來越明顯,望著空蕩蕩的床鋪,平日里喧鬧的宿舍就只剩下我一個(gè)人了,整個(gè)世界只有那個(gè)平時(shí)令人非常討厭的老鼠這時(shí)候才顯得可愛起來----只有它會(huì)陪著我在這不敢開燈的漆黑夜里----期末考試都應(yīng)付不了。失?。∥腋械娇煲粑贿^來,這種失敗的壓力簡直令我窒息,簡直讓我的手接收不到大腦的信號(hào),簡直讓這篇未完成的夭折。但我能怪誰?忙碌了一學(xué)期要過年了卻掛了科,失?。粧炝丝埔驳沽T了,竟然一個(gè)人拖全班的后退,失敗中;更失敗的,是在這最失落的時(shí)候,竟然找不到一個(gè)人可以傾訴;然而最失敗的,是突然發(fā)現(xiàn)自己竟然如此脆弱,如此耐不住寂寞。不過這倒也解開了心中疑惑很久的一個(gè)問題:為什么明知道那段情是一個(gè)旋渦卻還心甘情愿的往里面跳這就是青春,風(fēng)一樣的,火一樣不安的心。不再愛了,我不要再一個(gè)人的時(shí)候苦苦等待;不再愛了,我不要在你給的籠里憐憫的愛;不再愛了,我不要在別人的視線里如此可笑;不再愛,我不再愛。就算塌下來,我也要一個(gè)人,頭不能低腰不能彎,不能喘息不能傾訴,因?yàn)殡m然失敗,但還是,是就不能向低頭!14、這可以說是最簡單的一個(gè)組合命令了,它的作
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度化妝品產(chǎn)品代言合同協(xié)議4篇
- 2025年度臨時(shí)餐飲場地租賃服務(wù)協(xié)議8篇
- 二零二五年度水電設(shè)施智能化改造合同3篇
- 二零二五版餐飲企業(yè)廚師招聘與人才輸送協(xié)議3篇
- 二零二四事業(yè)單位員工試用期人才引進(jìn)與培養(yǎng)合作協(xié)議3篇
- 2024石材荒料購銷及石材產(chǎn)品安全檢測服務(wù)合同3篇
- 2024蔬菜種植與農(nóng)產(chǎn)品加工企業(yè)銷售合作協(xié)議范本3篇
- 2024進(jìn)出口食品貿(mào)易合同
- 二零二五版合同法擔(dān)保條款設(shè)計(jì)-企業(yè)風(fēng)險(xiǎn)控制策略3篇
- 二零二五年度在線教育平臺(tái)股權(quán)收購合同3篇
- GB/T 37238-2018篡改(污損)文件鑒定技術(shù)規(guī)范
- 普通高中地理課程標(biāo)準(zhǔn)簡介(湘教版)
- 河道治理工程監(jiān)理通知單、回復(fù)單范本
- 超分子化學(xué)簡介課件
- 高二下學(xué)期英語閱讀提升練習(xí)(一)
- 易制爆化學(xué)品合法用途說明
- 【PPT】壓力性損傷預(yù)防敷料選擇和剪裁技巧
- 大氣喜慶迎新元旦晚會(huì)PPT背景
- DB13(J)∕T 242-2019 鋼絲網(wǎng)架復(fù)合保溫板應(yīng)用技術(shù)規(guī)程
- 心電圖中的pan-tompkins算法介紹
- 羊絨性能對(duì)織物起球的影響
評(píng)論
0/150
提交評(píng)論