版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
cmd文件和bat文件有什么區(qū)別本質(zhì)上沒有區(qū)別,都是簡單的文本編碼方式,都可以用記事本創(chuàng)建、編輯和查看。兩者所用的命令行代碼也是共用的,只是cmd文件中允許使用的命令要比bat文件多。cmd文件只有在windows2000以上的系統(tǒng)中才能運(yùn)行,而bat文件則沒有這個(gè)限制。從它們的文件描述中也可以看出以上的區(qū)別:cmd文件的描述是“windowsnt命令腳本”,bat文件的描述是“msdos批處理文件”。cmd是Win32命令,只能在32位系統(tǒng)中的命令行窗口中使用,僅僅是基于windows環(huán)境下的假DOS,bat是DOS命令,在任何dos環(huán)境下都可以使用。批處理文件是一種沒有什么固定格式的文件,它可以處理一條或者多條命令,文件的擴(kuò)展名是:.cmd或者.bat,文本里面的每一行就是一條處理指令,雙擊運(yùn)行它的時(shí)候,Windows就會調(diào)用cmd.exe去運(yùn)行它。指令指令:6(±0和@@echooff通常我們將這條指令寫在批處理文件的第一行。有了這條指令之后,當(dāng)我們在運(yùn)行批處理文件(.cmd或者.bat)的時(shí)候,就不會將文件里面的內(nèi)容打印出來了,如果沒有這句話,會先去將文件里面的內(nèi)容打印在屏幕上。echooff這條指令之后的內(nèi)容不會被打印,但是這個(gè)指令會被打印。@某一條指令不想被打印,可以在前面加上@echo.或echo:換行,即回車。打印:echo使用echo命令將設(shè)置的變量進(jìn)行回顯,即打印。例如:echo%a%賦值:set注意等號左邊不能有空格,等號右邊的空格會被當(dāng)做字符串的一部分。例如:seta=l注釋:REM和::rem和::都起到注釋的作用,然而又有些不同。rem和REM一樣。當(dāng)echo處于關(guān)閉狀態(tài),rem和::注釋的語句都不會被打印出來。當(dāng)echo處于打開狀態(tài),rem注釋的語句會被打印出來,而使用::注釋的語言也不會打印出來。例如:REMIamdtesting::Whoareyou?標(biāo)題:title批處理title命令用于設(shè)置控制臺窗口中顯示的標(biāo)題。例如@echoofftitlenewwindowstitle執(zhí)行后:-0.畀員windowstitle}'p:\temp\eclipse-workspace\test\src>test.cmdp:\temp\eclipse-workspace\test\src>j暫停:PAUSE當(dāng)我們需要在文件運(yùn)行的中間讓其暫停一下,在控制臺就會顯示:“請按任意鍵以繼續(xù)”。例如:@echooffpause執(zhí)行后:D:\temp\eclipse-workspace\test\src>test.cmd請按任意鍵繼續(xù)???■啟動:start作用:啟動一個(gè)單獨(dú)的窗口以運(yùn)行指定的程序或命令。當(dāng)我們在cmd窗口輸入:helpstart之后,然后回車,可以查看幫助信息。Windows批處理文件(卜alled|.batcallec[7]cm::i)可以通過多種方式從另一批處理文件"(~|caller.bat或callerQcmd〉或交互式|cmd[?exe提示中|cal.ler|7|QI直接呼叫:|called|.bat|使用call命令:callcalled|.bat|使用cmci命令:cmd|/clealled|.bat]使用啟動命令:startcalled|.bat|指令:call如果你想在某一批處理程序中調(diào)用另外一個(gè)批處理文件,就是用call指令。|call|tempj.bat]延時(shí):timeout延時(shí)一定時(shí)間執(zhí)行后面的命令,延時(shí)的單位是秒。在延時(shí)的時(shí)候,可以按一個(gè)鍵繼續(xù)(即不繼續(xù)延時(shí))。例如,批處理文件中的內(nèi)容:l@echooff2echoheLLoworLd3timeout104echogooc\執(zhí)行批處理文件(延時(shí)過程中):D:\temp\eclipse-workspace\test\src>test.emdhelloworld等待8秒,按一個(gè)鍵繼續(xù)???執(zhí)行批處理文件(延時(shí)完成后):D:\temp\eclipse-workspace\test\src>test.emdhelloworld等待0秒,按一個(gè)鍵繼續(xù).?.goodgoto命令指定跳轉(zhuǎn)到標(biāo)簽,找到標(biāo)簽后,程序?qū)⑻幚韽南乱恍虚_始的命令。語法:gotolabel(label是參數(shù),指定所要轉(zhuǎn)向的批處理程序中的行。)Sample:if{%1}=={}gotonoparmsif{%2}=={}gotonoparms(如果這里的if、%1、%2你不明白的話,先跳過去,后面會有詳細(xì)的解釋。)@Remcheckparametersifnullshowusage:noparmsechoUsage:monitor.batServerIPPortNumbergotoend標(biāo)簽的名字可以隨便起,但是最好是有意義的字母。字母前加個(gè):用來表示這個(gè)字母是標(biāo)簽,goto命令就是根據(jù)這個(gè):來尋找下一步跳到到那里。最好有一些說明這樣你別人看起來才會理解你的意圖。If命令if表示將判斷是否符合規(guī)定的條件,從而決定執(zhí)行不同的命令。有三種格式:(1)if“參數(shù)”=="字符串”待執(zhí)行的命令參數(shù)如果等于指定的字符串,則條件成立,運(yùn)行命令,否則運(yùn)行下一句。(注意是兩個(gè)等號)如if"%1"=="a"formata:if{%1}=={}gotonoparmsif{%2}=={}gotonoparmsifexist文件名 待執(zhí)行的命令如果有指定的文件,則條件成立,運(yùn)行命令,否則運(yùn)行下一句。如ifexistconfig.syseditconfig.sysiferrorlevel/ifnoterrorlevel數(shù)字,待執(zhí)行的命令如果返回碼等于指定的數(shù)字,則條件成立,運(yùn)行命令,否則運(yùn)行卜.一句。如iferrorlevel2gotox2DOS程序運(yùn)行時(shí)都會返回一個(gè)數(shù)字給DOS,稱為錯(cuò)誤碼errorlevel或稱返回碼,常見的返回碼為0、lofor命令for命令是一個(gè)比較復(fù):雜的命令,主要用于參數(shù)在指定的范圍內(nèi)循環(huán)執(zhí)行命令。在批處理文件中使用FOR命令時(shí),指定變量請使用%%variable而不要用%variableo變量名稱是區(qū)分大小寫的,所以%i不同于%1for{%variable|%%variable}in(set)docommand[CommandLineOptions]%variable指定一個(gè)單一字母可替換的參數(shù)。(set)指定一個(gè)或一組文件??梢允褂猛ㄅ浞?。command指定對每個(gè)文件執(zhí)行的命令。command-parameters為特定命令指定參數(shù)或命令行開關(guān)。批處理命令中的參數(shù)、變量1.%[0-9]:是指去包含引號的命令行參數(shù)、%*接收所有參數(shù)(可以無限多個(gè),不只接收前九個(gè)參數(shù))例如:在"C:\Xemo.batarglarg2”命令中,argl是傳遞給demo.bat的第一個(gè)參數(shù),arg2是傳遞給demo.bat的第二個(gè)參數(shù)。我們知道,%*是用來指批處理文件傳入的參數(shù)。例如%0表示命令本身,%1表示傳入的第一個(gè)參數(shù),以此類推。%0代表批處理文件自身(例如上例中的demo.bat)%1接收傳遞給批處理文件的第一個(gè)參數(shù),%2接收第二個(gè)參數(shù)...%9接收第九個(gè)參數(shù)%9后面的變量(例如:%10)是無效的%*接收所有參數(shù)(可以無限多個(gè),不只接收前九個(gè)參數(shù);但不包含%0,即命令本身)%0-%9、%*用于批處理文件,在DOS命令行環(huán)境使用則無效%0-%9能被擴(kuò)充,但是%*不能被擴(kuò)充123456789101112131415i234567891011121314示例::demo.bat@echooffechofirstarg:%Qechofirstarg:%1echosecondarg:%2echothirdarg:%3echofourarg:%4echofivearg:%5echosixarg:%6echosevenarg:%7echoeightarg:%8echoninearg:%9::%10被解析為%1和。echoerrorarg:%10echoallarg:%*運(yùn)行C:\>demo.batarg0arglarg2arg3arg4arg5arg6arg7arg8arg9batchfileself:demo.batfirstarg:arg0secondarg:arglthirdarg:arg2fourarg:arg3fivearg:arg4sixarg:arg5sevenarg:arg6eightarg:arg7ninearg:arg8errorarg:arg00//鳧1是arg0,故這里為arg。。allarg:arg0arglarg2arg3arg4arg5arg6arg7arg8arg9C:\>2.%~(f|d|p|n|x|s|a|t|z|$PATH)*[0?9]總體介紹開發(fā)一個(gè)批處理命令,有時(shí)候需要知道這個(gè)命令的路徑、傳入?yún)?shù)的路徑等這些與路徑相關(guān)的信息。一般的編程語言會提供一些類庫或者API來完成與路徑相關(guān)的任務(wù),例如.NET中提供了File類、Directory類和Path類來做這些事情。在批處理文件中,使用%~*來完成與路徑相關(guān)的任務(wù),語法規(guī)則可以表示如下:%~(f|d|p|n|x|s|a|t|z|$PATH)*[0-9]3?%~[0?9]:是指去除了引號的命令行參數(shù)先假定在F:\Temp\Batch目錄下有一個(gè)test.bat批處理文件,執(zhí)行的批處理命令行是:F:\Temp>Batch\testuC:\ProgramFiles\studying.txt”%~0指命令行本身,木例為Batch\test%~1指第,個(gè)參數(shù),本例為C:\ProgramFiles\studying.txt注:%1也指第一個(gè)參數(shù),本例卻為"C:\ProgramFiles\studying.txt”,這里是有引號的。以此類推……4.%-f[0-9]:f-full,指絕對路徑名先假定在F:\Temp\Batch目錄下有一個(gè)test.bat批處理文件,執(zhí)行的批處理命令行是:F:\Temp>Batch\test uC:\ProgramFiles\studying.txtM本例中:%~f0-F:\Temp\Batch\test.bat%~fl-C:\ProgramFiles\studying.txt5?%~d[0?9]:d-driver,指盤符先假定在F:\Temp\Batch目錄下有一個(gè)test.bat批處理文件,執(zhí)行的批處理命令行是:F:\Temp>Batch\test uC:\ProgramFiles\studying.txt"本例中:%~d0-F:%~dl-C:6?%~p[0?9]:p-path,指不帶盤符的目錄名先假定在F:\Temp\Batch目錄下有一個(gè)test.bat批處理文件,執(zhí)行的批處理命令行是:F:\Temp>Batch\test 44C:\ProgramFiles\studying.txtM本例中:%~pO-\Temp\Batch\ 注:前后都有'\'%~pl-\ProgramFiles\7?%~n[0?9]:n-name,指文件的名字,注意不帶擴(kuò)展名先假定在F:\Temp\Batch目錄下有一個(gè)test.bat批處理文件,執(zhí)行的批處理命令行是:F:\Temp>Batch\test uC:\ProgramFiles\studying.txt"本例中:%-nO-test%~nl-studying8.%*x[0-9]:x-extension,指文件的擴(kuò)展名先假定在F:\Temp\Batch目錄下有一個(gè)test.bat批處理文件,執(zhí)行的批處理命令行是:F:\Temp>Batch\test **C:\ProgramFiles\studying.txtM本例中:%~x0-.bat注:前面有'%~xl-.txt9?%~s[0?9]:s-short,指帶有DOS短名字(8字符)的絕對路徑先假定在F:\Temp\Batch目錄下有一個(gè)test.bat批處理文件,執(zhí)行的批處理命令行是:F:\Temp>Batch\test uC:\ProgramFiles\studying.txtM本例中:%~s0-F:\TEMP\BATCH\test.bat%~sl-C:\PROGRA-l\studying.txt注:這里的目錄名全是大寫,而文件名全是小寫%*a[0-9]:a-attribute,指文件的屬性先假定在F:\Temp\Batch目錄下有一個(gè)test.bat批處理文件,執(zhí)行的批處理命令行是:F:\Temp>Batch\test 44C:\ProgramFiles\studying.txtM本例中:%~a0--a——-%~al--a注:這里每一位代表一種文件屬性,具體的含義待查%-t[0-9]:t-time,指文件的修改日期,注意不是創(chuàng)建日期先假定在F:\
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度房貸借款合同解除與終止合同樣本3篇
- 二零二五年度冷鏈物流服務(wù)采購合同范本6篇
- 課程設(shè)計(jì)平臺
- 太空實(shí)驗(yàn)室課程設(shè)計(jì)理念
- 設(shè)計(jì)部門的安全職責(zé)(4篇)
- 二零二五年度保險(xiǎn)合同標(biāo)的及保險(xiǎn)責(zé)任詳細(xì)描述2篇
- 實(shí)驗(yàn)室生物安全保衛(wèi)制度模版(3篇)
- 二零二五年度機(jī)場電梯系統(tǒng)改造與升級合同
- 二零二五年度勞動合同補(bǔ)充協(xié)議范本3篇
- 小學(xué)學(xué)??记诩?xì)則(2篇)
- 《太陽能光伏技術(shù)》課件
- 2024年職業(yè)素養(yǎng)與商務(wù)禮儀培訓(xùn)資料
- 外科醫(yī)生年終述職總結(jié)報(bào)告
- 兒科課件:急性細(xì)菌性腦膜炎
- 柜類家具結(jié)構(gòu)設(shè)計(jì)課件
- 建設(shè)項(xiàng)目管理費(fèi)用(財(cái)建2016504號)
- 煤炭運(yùn)輸安全保障措施提升運(yùn)輸安全保障措施
- JTGT-3833-2018-公路工程機(jī)械臺班費(fèi)用定額
- LDA型電動單梁起重機(jī)參數(shù)
- 保安巡邏線路圖
- (完整版)聚乙烯課件
評論
0/150
提交評論