最全批處理命令學(xué)習(xí)資料【完美版】_第1頁(yè)
最全批處理命令學(xué)習(xí)資料【完美版】_第2頁(yè)
最全批處理命令學(xué)習(xí)資料【完美版】_第3頁(yè)
最全批處理命令學(xué)習(xí)資料【完美版】_第4頁(yè)
最全批處理命令學(xué)習(xí)資料【完美版】_第5頁(yè)
已閱讀5頁(yè),還剩24頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、一:批處理文件批處理文件是擴(kuò)展名為·bat 或·cmd的文本文件,包含一條或多條命令,由DOS或Windows系統(tǒng)內(nèi)嵌的命令解釋器來(lái)解釋運(yùn)行。批處理的本質(zhì),是一堆DOS命令按一定順序排列而形成的集合。二:常用命令:1. echo 和 : #關(guān)閉單行回顯echo off #從下一行開始關(guān)閉回顯echo off #從本行開始關(guān)閉回顯,一般批處理第一行都是這個(gè)echo on #從下一行開始打開回顯echo #顯示當(dāng)前是 echo off 狀態(tài)還是 echo on 狀態(tài)echo. #輸出一個(gè)”回車換行”,空白行 #(同echo, echo; echo+ echo echo echo

2、/ echo")2. errorlevelecho%errorlevel%每個(gè)命令運(yùn)行結(jié)束,可以用這個(gè)命令行格式查看返回碼默認(rèn)值為0,一般命令執(zhí)行出錯(cuò)會(huì)設(shè) errorlevel 為1目錄操作類命令:3. dir顯示磁盤目錄命令dir #顯示當(dāng)前目錄中的文件和子目錄dir /a #顯示當(dāng)前目錄中的文件和子目錄,包括隱藏文件和系統(tǒng)文件dir c: /a:d #顯示 C 盤當(dāng)前目錄中的目錄dir c: /a:-d #顯示 C 盤根目錄中的文件dir c:" /b/p #/b只顯示文件名,/p分頁(yè)顯示dir c:" /b/p #/w不顯示詳細(xì)信息dir *.exe /s

3、#顯示當(dāng)前目錄和子目錄里所有的.exe文件4. 以樹形顯示當(dāng)前路徑文件夾結(jié)構(gòu)tree /f #顯示每個(gè)文件夾中文件的名字。5.md建立子目錄 md d:"a"b"c #如果 d:"a 不存在,將會(huì)自動(dòng)創(chuàng)建中級(jí)目錄 #如果命令擴(kuò)展名被停用,則需要鍵入 mkdir "a"b"c6.cd改變當(dāng)前目錄(進(jìn)入)cd #進(jìn)入根目錄cd #顯示當(dāng)前目錄cd /d d:sdk #可以同時(shí)更改盤符和目錄cd . #返回上一級(jí)目錄7.rd刪除子目錄命令rd abc #刪除當(dāng)前目錄里的 abc 子目錄,要求為空目錄rd /s/q d:temp #

4、刪除 d:"temp 文件夾及其子文件夾和文件/q安靜模式磁盤操作類命令:8.format磁盤格式化命令9.chkdsk檢查磁盤當(dāng)前狀態(tài)命令10.label建立磁盤卷標(biāo)命令11.vol顯示磁盤卷標(biāo)命令文件操作類命令:12. copy文件復(fù)制命令copy c:test.txt d:test.bak復(fù)制 c:test.txt 文件到 d: ,并重命名為 test.bakcopy con test.txt從屏幕上等待輸入,按 Ctrl+Z 結(jié)束輸入,輸入內(nèi)容存為test.txt文件con代表屏幕,prn代表打印機(jī),nul代表空設(shè)備copy 1.txt + 2.txt 3.txt合并 1.t

5、xt 和 2.txt 的內(nèi)容,保存為 3.txt 文件如果不指定 3.txt ,則保存到 1.txtcopy test.txt +復(fù)制文件到自己,實(shí)際上是修改了文件日期13. xcopy目錄復(fù)制命令xcopy c: d:14. ren 文件改名命令ren d:temp tmp #支持對(duì)文件夾的重命名15. attrib修改文件屬性命令attrib filename #查看文件屬性 + #設(shè)置屬性- #清除屬性r #只讀文件a #存檔文件s #系統(tǒng)文件H #隱藏文件/S #處理當(dāng)前文件夾及其所有子文件夾中的匹配文件/D #處理文件夾16. type顯示文件內(nèi)容type c:boot.ini #顯

6、示指定文件的內(nèi)容,程序文件一般會(huì)顯示亂碼type *.txt #顯示當(dāng)前目錄里所有.txt文件的內(nèi)容17. del刪除文件命令del d:test.txt #刪除指定文件,不能是隱藏、系統(tǒng)、只讀文件del /q/a/f d:"temp"*.* #刪除 d:"temp 文件夾里面的所有文件包括 隱藏、只讀、系統(tǒng)文件,不包括子目錄del /q/a/f/s d:"temp"*.*#刪除 d:"temp 及子文件夾里面的所有文件包括 隱藏、只讀、系統(tǒng)文件,不包括子目錄其他命令:18. CLS清屏幕命令19. ver查看系統(tǒng)版本號(hào)命令20. t

7、ime,date 系統(tǒng)時(shí)鐘日期設(shè)置/顯示命令date #顯示當(dāng)前日期,并提示輸入新日期,按""回車""略過(guò)輸入date/t #只顯示當(dāng)前日期,不提示輸入新日期time #顯示當(dāng)前時(shí)間,并提示輸入新時(shí)間,按""回車""略過(guò)輸入time/t #只顯示當(dāng)前時(shí)間,不提示輸入新時(shí)間21. rem 和 :注釋注釋行不執(zhí)行操作22. color設(shè)置默認(rèn)的控制臺(tái)前景和背景顏色邏輯命令:23. goto 和 :跳轉(zhuǎn)命令:label #行首為:表示該行是標(biāo)簽行,標(biāo)簽行不執(zhí)行操作goto label #跳轉(zhuǎn)到指定的標(biāo)簽?zāi)且恍?4. se

8、t定義變量引用變量可在變量名前后加 % ,即 %變量名%set #顯示目前所有可用的變量,包括系統(tǒng)變量和自定義的變量echo %SystemDrive% #顯示系統(tǒng)盤盤符。系統(tǒng)變量可以直接引用set p #顯示所有以p開頭的變量,有就設(shè)errorlevel=1set p=aa1bb1aa2bb2 #設(shè)置變量p,并賦值為 = 后面的字符串,即aa1bb1aa2bb2echo %p% #顯示變量p代表的字符串,即aa1bb1aa2bb2echo %p:6% #顯示變量p中第6個(gè)字符以后的所有字符,即aa2bb2echo %p:6,3% #顯示第6個(gè)字符以后的3個(gè)字符,即aa2echo %p:0,3

9、% #顯示前3個(gè)字符,即aa1echo %p:-2% #顯示最后面的2個(gè)字符,即b2echo %p:0,-2% #顯示除了最后2個(gè)字符以外的其它字符,即aa1bb1aa2becho %p:aa=c% #用c替換變量p中所有的aa,即顯示c1bb1c2bb2echo %p:aa=% #將變量p中的所有aa字符串置換為空,即顯示1bb12bb2echo %p:*bb=c% #第一個(gè)bb及其之前的所有字符被替換為c,即顯示c1aa2bb2set p=%p:*bb=c% #設(shè)置變量p,賦值為 %p:*bb=c% ,即c1aa2bb2set /a p=39 #設(shè)置p為數(shù)值型變量,值為39set /a p

10、=39/10 #支持運(yùn)算符,有小數(shù)時(shí)用去尾法,去尾得3,p=3set /a p=p/10 #用 /a 參數(shù)時(shí),在 = 后面的變量可以不加%直接引用set /a p=”1&0 #”與”運(yùn)算,要加引號(hào)。其它支持的運(yùn)算符參見(jiàn)set/?set p= #取消p變量set /p p=請(qǐng)輸入屏幕上顯示”請(qǐng)輸入”,并會(huì)將輸入的字符串賦值給變量p注意這條可以用來(lái)取代 choice 命令注意變量在 if 和 for 的復(fù)合語(yǔ)句里是一次性全部替換的,如echo offset p=aaaif %p%=aaa ( echo %p% set p=bbb echo %p% )結(jié)果將顯示aaaaaa因?yàn)樵谧x取 if

11、語(yǔ)句時(shí)已經(jīng)將所有 %p% 替換為aaa這里的""替換"",在 /? 幫助里就是指""擴(kuò)充""、""環(huán)境變量擴(kuò)充""可以啟用”延緩環(huán)境變量擴(kuò)充”,用 ! 來(lái)引用變量,即 !變量名!echo offSETLOCAL ENABLEDELAYEDEXPANSIONset p=aaaif %p%=aaa ( echo %p% set p=bbb echo !p! )ENDLOCAL結(jié)果將顯示aaabbb還有幾個(gè)動(dòng)態(tài)變量,運(yùn)行 set 看不到%CD% #代表當(dāng)前目錄的字符串%DATE%

12、#當(dāng)前日期%TIME% #當(dāng)前時(shí)間%RANDOM% #隨機(jī)整數(shù),介于032767%ERRORLEVEL% #當(dāng)前 ERRORLEVEL 值%CMDEXTVERSION% #當(dāng)前命令處理器擴(kuò)展名版本號(hào)%CMDCMDLINE% #調(diào)用命令處理器的原始命令行可以用echo命令查看每個(gè)變量值,如 echo %time%注意 %time% 精確到毫秒,在批處理需要延時(shí)處理時(shí)可以用到變量大全系統(tǒng)變量:系統(tǒng)將其根據(jù)事先定義的條件自動(dòng)賦值,也就是系統(tǒng)已經(jīng)給他們定義了值,不需要我們來(lái)給他賦值,我們只需要調(diào)用。%ALLUSERSPROFILE% 本地 返回“所有用戶”配置文件的位置。 %APPDATA% 本地 返

13、回默認(rèn)情況下應(yīng)用程序存儲(chǔ)數(shù)據(jù)的位置。 %CD% 本地 返回當(dāng)前目錄字符串。 %CMDCMDLINE% 本地 返回用來(lái)啟動(dòng)當(dāng)前的 Cmd.exe 的準(zhǔn)確命令行。 %CMDEXTVERSION% 系統(tǒng) 返回當(dāng)前的“命令處理程序擴(kuò)展”的版本號(hào)。 %COMPUTERNAME% 系統(tǒng) 返回計(jì)算機(jī)的名稱。 %COMSPEC% 系統(tǒng) 返回命令行解釋器可執(zhí)行程序的準(zhǔn)確路徑。 %DATE% 系統(tǒng) 返回當(dāng)前日期。使用與 date /t 命令相同的格式。由 Cmd.exe 生成。%ERRORLEVEL% 系統(tǒng) 返回上一條命令的錯(cuò)誤代碼。通常用非零值表示錯(cuò)誤。 %HOMEDRIVE% 系統(tǒng) 返回連接到用戶主目錄的本地

14、工作站驅(qū)動(dòng)器號(hào)。基于主目錄值而設(shè)置。用戶主目錄是在“本地用戶和組”中指定的。 %HOMEPATH% 系統(tǒng) 返回用戶主目錄的完整路徑?;谥髂夸浿刀O(shè)置。用戶主目錄是在“本地用戶和組”中指定的。 %HOMESHARE% 系統(tǒng) 返回用戶的共享主目錄的網(wǎng)絡(luò)路徑。基于主目錄值而設(shè)置。用戶主目錄是在“本地用戶和組”中指定的。 %LOGONSERVER% 本地 返回驗(yàn)證當(dāng)前登錄會(huì)話的域控制器的名稱。 %NUMBER_OF_PROCESSORS% 系統(tǒng) 指定安裝在計(jì)算機(jī)上的處理器的數(shù)目。 %OS% 系統(tǒng) 返回操作系統(tǒng)名稱。Windows 2000 顯示其操作系統(tǒng)為 Windows_NT。 %PATH% 系統(tǒng)

15、 指定可執(zhí)行文件的搜索路徑。 %PATHEXT% 系統(tǒng) 返回操作系統(tǒng)認(rèn)為可執(zhí)行的文件擴(kuò)展名的列表。 %PROCESSOR_ARCHITECTURE% 系統(tǒng) 返回處理器的芯片體系結(jié)構(gòu)。%PROCESSOR_IDENTFIER% 系統(tǒng) 返回處理器說(shuō)明。 %PROCESSOR_LEVEL% 系統(tǒng) 返回計(jì)算機(jī)上安裝的處理器的型號(hào)。 %PROCESSOR_REVISION% 系統(tǒng) 返回處理器的版本號(hào)。 %PROMPT% 本地 返回當(dāng)前解釋程序的命令提示符設(shè)置。由 Cmd.exe 生成。 %RANDOM% 系統(tǒng) 返回 0 到 32767 之間的任意十進(jìn)制數(shù)字。由 Cmd.exe 生成。 %SYSTEMDR

16、IVE% 系統(tǒng) 返回包含 Windows server operating system 根目錄(即系統(tǒng)根目錄)的驅(qū)動(dòng)器。 %SYSTEMROOT% 系統(tǒng) 返回 Windows server operating system 根目錄的位置。 %TEMP% 和 %TMP% 系統(tǒng)和用戶 返回對(duì)當(dāng)前登錄用戶可用的應(yīng)用程序所使用的默認(rèn)臨時(shí)目錄。%TIME% 系統(tǒng) 返回當(dāng)前時(shí)間。使用與 time /t 命令相同的格式。由 Cmd.exe 生成。%USERDOMAIN% 本地 返回包含用戶帳戶的域的名稱。 %USERNAME% 本地 返回當(dāng)前登錄的用戶的名稱。 %USERPROFILE% 本地 返回當(dāng)前用

17、戶的配置文件的位置。 %WINDIR% 系統(tǒng) 返回操作系統(tǒng)目錄的位置。 25. pause暫停命令26. if判斷命令if ERRORLEVEL number command#判斷命令是否正確運(yùn)行通常情況下,命令執(zhí)行成功后,系統(tǒng)變量ERRORLEVEL會(huì)被設(shè)置成0,若命令失敗,或遇到非法命令,系統(tǒng)變量ERRORLEVEL會(huì)被設(shè)置成非0。if string1=string2 command#判斷某兩個(gè)字符串是否相等if exit filename command#判斷驅(qū)動(dòng)器、文件或文件夾是否存在if defined var command#判斷某個(gè)變量是否已經(jīng)被賦值if 1 equ 2#判斷某兩

18、個(gè)數(shù)值是否相等EQU#等于=NEQ#不等于!=LSS#小于<LEQ#小于或等于<=GTR#大于>GEQ #大于或等于>=注:#ELSE 子句必須出現(xiàn)在同一行上的 IF 之后Example:if ""%1""=""/a"" echo 第一個(gè)參數(shù)是/aif /i ""%1"" equ ""/a"" echo 第一個(gè)參數(shù)是/a/i 表示不區(qū)分大小寫,equ 和 = 是一樣的其它運(yùn)算符參見(jiàn) if/?if exist c:

19、test.bat echo 存在c:test.bat文件if not exist c:windows ( echo 不存在c:"windows文件夾 )if exist c:test.bat ( echo 存在c:test.bat ) else ( echo 不存在c:test.bat )if exist 文件名 待執(zhí)行的命令如果有指定的文件,則條件成立,運(yùn)行命令,否則運(yùn)行下一句。如if exist config.sys edit config.sysif errorlevel / if not errorlevel 數(shù)字 待執(zhí)行的命令如果返回碼等于指定的數(shù)字,則條件成立,運(yùn)行命令,

20、否則運(yùn)行下一句。如if errorlevel 2 goto x2 27. call命令調(diào)用子程序CALL drive:pathfilename batch-parametersbatch-parameters 指定批處理程序所需的命令行信息(參數(shù))。28. exit命令退出命令29. for循環(huán)/F#分塊提取文件/D#顯示當(dāng)前目錄下所有指定的目錄名稱/R #枚舉文件和目錄/L#計(jì)次循環(huán)子參數(shù):tokens(塊)、delims(分塊標(biāo)志)、eol(忽略行)、skip(跳過(guò)行)、userbackq(支持長(zhǎng)路徑名)CMD窗口中:for %I in (command1) do command2批處理中

21、:for %I in (command1) do command21、for、in和do是for語(yǔ)句的關(guān)鍵字,它們?nèi)齻€(gè)缺一不可;2、%I是for語(yǔ)句中對(duì)形式變量的引用,就算它在do后的語(yǔ)句中沒(méi)有參與語(yǔ)句的執(zhí)行,也是必須出現(xiàn)的;3、in之后,do之前的括號(hào)不能省略;4、command1表示字符串或變量,command2表示字符串、變量或命令語(yǔ)句;echo offfor %I in () do echo %Ipause1、for語(yǔ)句的形式變量I,可以換成26個(gè)字母中的任意一個(gè),這些字母會(huì)區(qū)分大小寫,也就是說(shuō),%I和%i會(huì)被認(rèn)為不是同一個(gè)變量;形式變量I還可以換成其他的字符,但是,為了不與批處理中的

22、%0%9這10個(gè)形式變量發(fā)生沖突,請(qǐng)不要隨意把%I替換為%0 %9中的任意一個(gè);2、in和do之間的command1表示的字符串或變量可以是一個(gè),也可以是多個(gè),每一個(gè)字符串或變量,我們稱之為一個(gè)元素,每個(gè)元素之間,用空格鍵、跳格鍵、逗號(hào)、分號(hào)或等號(hào)分隔;3、for語(yǔ)句依次提取command1中的每一個(gè)元素,把它的值賦予形式變量I,帶到do后的command2中參與命令的執(zhí)行;并且每次只提取一個(gè)元素,然后執(zhí)行一次do后的命令語(yǔ)句,而無(wú)論這個(gè)元素是否被帶到command2中參與了command2的運(yùn)行;當(dāng)執(zhí)行完一次do后的語(yǔ)句之后,再提取command1中的下一個(gè)元素,再執(zhí)行一次command2,

23、如此循環(huán),直到command1中的所有元素都已經(jīng)被提取完畢,該for語(yǔ)句才宣告執(zhí)行結(jié)束;Example:for /f "tokens=1 delims= " %a in (test.txt) do (echo %a)取第1行并顯示for /f "tokens=1,2 delims= " %a in (test.txt) do (echo %a %b)取1,2行并顯示for /f "tokens=1-3 delims= " %a in (test.txt) do (echo %a %b %c)取1到3行并顯示for /f "t

24、okens=2,3,* delims= " %a in (test.txt) do (echo %a %b %c)取2,3行并顯示for /f "eol=! tokens=*" %a in (test.txt) do (echo %a)忽略!開頭的行并顯示for /f "skip=3 tokens=*" %a in (test.txt) do (echo %a)忽略前三行并顯示for /d %a in (pro*,doc*) do (echo %a)顯示以pro開頭的目錄名稱,顯示以doc開頭的目錄名稱for /r %systemroot% %

25、a in (*.tmp) do (echo %a)顯示root目錄下后綴名為.tmp的文件及目錄set i=0for /l %a in (1,1,100) do (set /a i+=1)echo 結(jié)算結(jié)果:%i%(變量起始值,每次遞加的步長(zhǎng),終止值)for /f "usebackq" %a in ("C:Program Filesjksing.txt") do (echo %a)顯示jksing中的內(nèi)容,若去掉usebackq,則輸出C:Programfor /r %i in (*.txt) do (echo %fi)for %i in (c: d:

26、e: f:) do echo %i依次調(diào)用小括號(hào)里的每個(gè)字符串,執(zhí)行 do 后面的命令注意%i,在批處理中 for 語(yǔ)句調(diào)用參數(shù)用2個(gè)%默認(rèn)的字符串分隔符是""空格鍵"",""Tab鍵"",""回車鍵""for %i in (*.txt) do find ""abc"" %i對(duì)當(dāng)前目錄里所有的txt文件執(zhí)行 find 命令for /r . %i in (*.txt) do find ""abc""

27、 %i在當(dāng)前目錄和子目錄里所有的.txt文件中搜索包含 abc 字符串的行for /r . %i in (.) do echo %pn顯示當(dāng)前目錄名和所有子目錄名,包括路徑,不包括盤符for /r d:"mp3 %i in (*.mp3) do echo %i>>d:"mp3.txt把 d:"mp3 及其子目錄里的mp3文件的文件名都存到 d:"mp3.txt 里去for /l %i in (2,1,8) do echo %i生成2345678的一串?dāng)?shù)字,2是數(shù)字序列的開頭,8是結(jié)尾,1表示每次加1for /f %i in ('set

28、') do echo %i對(duì) set 命令的輸出結(jié)果循環(huán)調(diào)用,每行一個(gè)for /f ""eol=P"" %i in ('set') do echo %i取 set 命令的輸出結(jié)果,忽略以 P 開頭的那幾行for /f %i in (d:"mp3.txt) do echo %i顯示 d:"mp3.txt 里的每個(gè)文件名,每行一個(gè),不支持帶空格的名稱for /f ""delims="" %i in (d:"mp3.txt) do echo %i顯示 d:"

29、mp3.txt 里的每個(gè)文件名,每行一個(gè),支持帶空格的名稱for /f ""skip=5 tokens=4"" %a in ('dir') do echo %a對(duì) dir 命令的結(jié)果,跳過(guò)前面5行,余下的每行取第4列每列之間的分隔符為默認(rèn)的""空格""可以注意到 dir 命令輸出的前5行是沒(méi)有文件名的for /f ""tokens=1,2,3 delims=- "" %a in ('date /t') do ( echo %a echo %b

30、echo %c )對(duì) date /t 的輸出結(jié)果,每行取1、2、3列第一列對(duì)應(yīng)指定的 %a ,后面的 %b 和 %c 是派生出來(lái)的,對(duì)應(yīng)其它列分隔符指定為 - 和""空格"",注意 delims=- 后面有個(gè)""空格""其中 tokens=1,2,3 若用 tokens=1-3 替換,效果是一樣的for /f ""tokens=2* delims=- "" %a in ('date /t') do echo %b取第2列給 %a ,其后的列都給 %b30. 參

31、數(shù)%0 %1 %2 %3 %4 %5 %6 %7 %8 %9 %* i%命令行傳遞給批處理的參數(shù)%0 #批處理文件本身%1 #第一個(gè)參數(shù)%9 #第九個(gè)參數(shù)%* #從第一個(gè)參數(shù)開始的所有參數(shù)參數(shù)擴(kuò)展:%1 #刪除引號(hào)(""),擴(kuò)充 %1%f1 #將 %1 擴(kuò)充到一個(gè)完全合格的路徑名%d1 #僅將 %1 擴(kuò)充到一個(gè)驅(qū)動(dòng)器號(hào)%p1 #僅將 %1 擴(kuò)充到一個(gè)路徑%n1 #僅將 %1 擴(kuò)充到一個(gè)文件名%x1 #僅將 %1 擴(kuò)充到一個(gè)文件擴(kuò)展名%s1 #擴(kuò)充的路徑指含有短名%a1 #將 %1 擴(kuò)充到文件屬性%t1 #將 %1 擴(kuò)充到文件的日期/時(shí)間%z1 #將 %1 擴(kuò)充到文件的大小%

32、$PATH#查找列在 PATH 環(huán)境變量的目錄,并將 %1擴(kuò)充到找到的第一個(gè)完全合格的名稱。如果環(huán)境變量名未被定義,或者沒(méi)有找到文件,此組合鍵會(huì)擴(kuò)充到空字符串可以組合修定符來(lái)取得多重結(jié)果:%dp1 #只將 %1 擴(kuò)展到驅(qū)動(dòng)器號(hào)和路徑%nx1 #只將 %1 擴(kuò)展到文件名和擴(kuò)展名%dp$PATH:#在列在 PATH 環(huán)境變量中的目錄里查找 %1,并擴(kuò)展到找到的第一個(gè)文件的驅(qū)動(dòng)器號(hào)和路徑%ftza1 #將 %1 擴(kuò)展到類似 DIR 的輸出行31. find查找命令(外部命令)在文件中搜索字符串find ""abc"" c:"test.txt在 c:&

33、quot;test.txt 文件里查找含 abc 字符串的行如果找不到,將設(shè) errorlevel 返回碼為1find /i “abc” c:"test.txt查找含 abc 的行,忽略大小寫find /c ""abc"" c:"test.txt顯示含 abc 的行的行數(shù)32. more逐屏顯示輸出more c:"test.txt #逐屏顯示 c:"test.txt 的文件內(nèi)容33. assoc 和 ftype文件關(guān)聯(lián)assoc 設(shè)置'文件擴(kuò)展名'關(guān)聯(lián),關(guān)聯(lián)到'文件類型'ftype

34、設(shè)置'文件類型'關(guān)聯(lián),關(guān)聯(lián)到'執(zhí)行程序和參數(shù)'當(dāng)你雙擊一個(gè).txt文件時(shí),windows并不是根據(jù).txt直接判斷用 notepad.exe 打開而是先判斷.txt屬于 txtfile '文件類型'再調(diào)用 txtfile 關(guān)聯(lián)的命令行 txtfile=%SystemRoot%"system32"NOTEPAD.EXE %1可以在""文件夾選項(xiàng)""""文件類型""里修改這2種關(guān)聯(lián)assoc #顯示所有'文件擴(kuò)展名'關(guān)聯(lián)assoc .t

35、xt #顯示.txt代表的'文件類型',結(jié)果顯示 .txt=txtfileassoc .exe #顯示.exe代表的'文件類型',結(jié)果顯示 .exe=exefileftype #顯示所有'文件類型'關(guān)聯(lián)ftype exefile #顯示exefile類型關(guān)聯(lián)的命令行,結(jié)果顯示 exefile=""%1"" %* 設(shè)置.txt為word類型的文檔,可以看到.txt文件的圖標(biāo)都變了assoc .txt=txtfile恢復(fù).txt的正確關(guān)聯(lián)ftype exefile=""%1"&qu

36、ot; %*恢復(fù) exefile 的正確關(guān)聯(lián)如果該關(guān)聯(lián)已經(jīng)被破壞,可以運(yùn)行 ,再輸入這條命令34. pushd 和 popd切換當(dāng)前目錄echo offc: & cd" & md mp3 #在 C:" 建立 mp3 文件夾md d:"mp4 #在 D:" 建立 mp4 文件夾cd /d d:"mp4 #更改當(dāng)前目錄為 d:"mp4pushd c:"mp3 #保存當(dāng)前目錄,并切換當(dāng)前目錄為 c:"mp3popd #恢復(fù)當(dāng)前目錄為剛才保存的 d:"mp435. subst映射磁盤subst z

37、: "server"d #這樣輸入z:就可以訪問(wèn)"server"d了subst z: /d #取消該映射subst #顯示目前所有的映時(shí)常用特殊符號(hào): 1.#命令行回顯屏蔽符 2.%#批處理變量引導(dǎo)符 3.>#重定向符 4.>>#重定向符 5.<,>&,<& #重定向符 6.| #命令管道符 7. #轉(zhuǎn)義字符 8.& #組合命令 9.&& #組合命令 10.| #組合命令 11."" #字符串界定符 詳細(xì)介紹:1. % 批處理變量引導(dǎo)符 2. > ,&g

38、t;> 重定向符 > 清除文件中原有的內(nèi)容后再寫入>> 追加內(nèi)容到文件末尾,而不會(huì)清除原有的內(nèi)容主要將本來(lái)顯示在屏幕上的內(nèi)容輸出到指定文件中指定文件如果不存在,則自動(dòng)生成該文件Example: echo hello > 1.txt echo world >>1.txt 這時(shí)候 1.txt 內(nèi)容如下: hello world type c:"test.txt >prn屏幕上不顯示文件內(nèi)容,轉(zhuǎn)向輸出到打印機(jī)echo hello world>con在屏幕上顯示hello world,實(shí)際上所有輸出都是默認(rèn) >con 的copy c

39、:"test.txt f: >nul拷貝文件,并且不顯示""文件復(fù)制成功""的提示信息,但如果f盤不存在,還是會(huì)顯示出錯(cuò)信息copy c:"test.txt f: >nul 2>nul不顯示”文件復(fù)制成功”的提示信息,并且f盤不存在的話,也不顯示錯(cuò)誤提示信息echo W > W>c:"test.txt生成的文件內(nèi)容為 W > W 和 > 是控制命令,要把它們輸出到文件,必須在前面加個(gè) 符號(hào)3. <,>&,<& 重定向符<從文件中獲得輸入信息,而

40、不是從屏幕上,一般用date time label等需要等待輸入的命令>&將一個(gè)句柄的輸出寫入到另一個(gè)句柄的輸入中<& 剛好和>&相反,從一個(gè)句柄讀取輸入并將其寫入到另一個(gè)句柄輸出中 Example:echo offecho 2005-05-01>temp.txtdate <temp.txtdel temp.txt這樣就可以不等待輸入直接修改當(dāng)前日期常用句柄:0、1、2,未定義句柄:39 1>nul 表示禁止輸出正確的信息 2>nul 表示禁止輸出錯(cuò)誤信息。 其中的 1 與 2 都是代表某個(gè)數(shù)據(jù)流輸入輸出的地址(NT CMD 稱

41、之為句柄,MSDOS 稱之為設(shè)備)。 句柄 0 :標(biāo)準(zhǔn)輸入stdin,鍵盤輸入 句柄 1:標(biāo)準(zhǔn)輸出stdout,輸出到命令提示符窗口(console,代碼為 CON ) 句柄 2:標(biāo)準(zhǔn)錯(cuò)誤stderr,輸出到命令提示符窗口(console,代碼為 CON ) 其中的 stdin 可被<重定向,stdout 可被>、>>重定向。 我們已經(jīng)知道讀取文本中的內(nèi)容可以用 for 命令,但如果只需要讀取第一行用 for 命令就有點(diǎn)麻煩。簡(jiǎn)單的 辦法如下: echo off set /p str=<%0 echo %str% pause 運(yùn)行顯示批處理文件自身的第一行:ech

42、o off 4. & ,&& ,| 組合命令 & 、&& 、|為組合命令,顧名思義,就是可以把多個(gè)命令組合起來(lái)當(dāng)一個(gè)命令來(lái)執(zhí)行。這在批處理腳本里 是允許的,而且用的非常廣泛。因?yàn)榕幚碚J(rèn)行不認(rèn)命令數(shù)目。&:語(yǔ)法:第一條命令 & 第二條命令 & 第三條命令. &允許在一行中使用 2 個(gè)以上不同的命令,當(dāng)?shù)谝粋€(gè)命令執(zhí)行失敗了,也不影響后邊的命令執(zhí)行。 這里&兩邊的命令是順序執(zhí)行的,從前往后執(zhí)行。 比如: dir z: & dir y: & dir c: 以上命令會(huì)連續(xù)顯示z,y,c 盤的內(nèi)容,不

43、理會(huì)該盤是否存在 &&:語(yǔ)法:第一條命令 && 第二條命令 && 第三條命令. 用這種方法可以同時(shí)執(zhí)行多條命令,當(dāng)碰到執(zhí)行出錯(cuò)的命令后將不執(zhí)行后面的命令,如果一直沒(méi)有出錯(cuò)則 一直執(zhí)行完所有命令 這個(gè)命令和上邊的類似,但區(qū)別是,第一個(gè)命令失敗時(shí),后邊的命令也不會(huì)執(zhí)行 dir z: && dir y: && dir c: |:語(yǔ)法:第一條命令 | 第二條命令 | 第三條命令. 用這種方法可以同時(shí)執(zhí)行多條命令,當(dāng)一條命令失敗后才執(zhí)行第二條命令,當(dāng)碰到執(zhí)行正確的命令后將不 執(zhí)行后面的命令,如果沒(méi)有出現(xiàn)正確的命令則一直執(zhí)行完

44、所有命令; 提示:組合命令和重定向命令一起使用必須注意優(yōu)先級(jí) 管道命令的優(yōu)先級(jí)高于重定向命令,重定向命令的優(yōu)先級(jí)高于組合命令 5. | 命令管道符 格式:第一條命令 | 第二條命令 | 第三條命令. 將第一條命令的結(jié)果作為第二條命令的參數(shù)來(lái)使用,記得在 unix 中這種方式很常見(jiàn)。 例如: dir *.* /s/a | find /c "".exe""管道命令表示先執(zhí)行 dir 命令,對(duì)其輸出的結(jié)果執(zhí)行后面的 find 命令該命令行結(jié)果:輸出當(dāng)前文件夾及所有子文件夾里的.exe文件的個(gè)數(shù)type c:"test.txt|more這個(gè)和 more

45、 c:"test.txt 的效果是一樣的dir c:|find "txt" 以上命令是:查找C:所有,并發(fā)現(xiàn) TXT 字符串。 FIND 的功能請(qǐng)用 FIND /? 自行查看 在不使 format 的自動(dòng)格式化參數(shù)時(shí),我是這樣來(lái)自動(dòng)格式化A 盤的 echo y|format a: /s /q /v:system 用過(guò) format 的都知道,再格盤時(shí)要輸入y 來(lái)確認(rèn)是否格盤,這個(gè)命令前加上 echo y 并用|字符來(lái)將 echo y 的結(jié)果傳給format 命令 從而達(dá)到自動(dòng)輸入 y 的目的6. 轉(zhuǎn)義字符 是對(duì)特殊符號(hào)<,>,& 的前導(dǎo)字符,在

46、命令中他將以上 3 個(gè)符號(hào)的特殊功能去掉僅只把他們當(dāng)成符號(hào)而不使用他們的特殊意義。 Example:echo test >1.txt 結(jié)果則是:test > 1.txt 他沒(méi)有追加在 1.txt 里,只是顯示了出來(lái) 另外,此轉(zhuǎn)義字符還可以用作續(xù)行符號(hào)。 echo off echo 英雄 是 好 男人 pause 為什么轉(zhuǎn)義字符放在行尾可以起到續(xù)行符的作用呢?原因很簡(jiǎn)單,因?yàn)槊啃心┪策€有一個(gè)看不見(jiàn)的符號(hào),即回車符,轉(zhuǎn)義字符位于行尾時(shí)就讓回車符失效了,從而起到了續(xù)行的作用7. "" 字符串界定符 雙引號(hào)允許在字符串中包含空格,進(jìn)入一個(gè)特殊目錄可以用如下方法 cd &

47、quot;program files" cd progra1 cd pro* 以上三種方法都可以進(jìn)入 program files 這個(gè)目錄 8. ; 分號(hào) 分號(hào),當(dāng)命令相同時(shí),可以將不同目標(biāo)用;來(lái)隔離但執(zhí)行效果不變,如執(zhí)行過(guò)程中發(fā)生錯(cuò)誤則只返回錯(cuò)誤報(bào)告,但程序仍會(huì)執(zhí)行。(有人說(shuō)不會(huì)繼續(xù)執(zhí)行,其實(shí)測(cè)試一下就知道了) 比如: dir c:;d:;e:;z: 以上命令相當(dāng)于 dir c: dir d: dir e: dir f: 如果其中 z 盤不存在,運(yùn)行顯示:系統(tǒng)找不到指定的路徑。然后終止命令的執(zhí)行。 例:dir c:;d:;e:1.txt 以上命令相當(dāng)于 dir c: dir d:

48、dir e:1.txt 其中文件 e:1.txt 不存在,但 e 盤存在,有錯(cuò)誤提示,但命令仍會(huì)執(zhí)行。 如果目標(biāo)路徑不存在,則終止執(zhí)行;如果路徑存在,僅文件不存在,則繼續(xù)執(zhí)行。 9. () 括號(hào)小括號(hào)在批處理編程中有特殊的作用,左右括號(hào)必須成對(duì)使用括號(hào)中可以包括多行命令,這些命令將被看成一個(gè)整體,視為一條命令行 括號(hào)在 for 語(yǔ)句和 if 語(yǔ)句中常見(jiàn),用來(lái)嵌套使用循環(huán)或條件語(yǔ)句,其實(shí)括號(hào)()也可以單獨(dú)使用,請(qǐng)看例子。 Example:echo 1 & echo 2 & echo 3 可以寫成: ( echo 1 echo 2 echo 3 ) 上面兩種寫法效果一樣,這兩種寫法

49、都被視為是一條命令行。 注意:這種多條命令被視為一條命令行時(shí),如果其中有變量,就涉及到變量延遲的問(wèn)題 10. ! 感嘆號(hào) 在變量延遲問(wèn)題中,用來(lái)表示變量,即%var%應(yīng)該表示為!var!DOS 編程高級(jí)技巧 :一、交互界面設(shè)計(jì) 沒(méi)啥說(shuō)的,看看高手設(shè)計(jì)的菜單界面吧: echo off cls title 終極多功能修復(fù) :menu cls color 0A echo. echo = echo 請(qǐng)選擇要進(jìn)行的操作,然后按回車 echo = echo. echo 1. 網(wǎng)絡(luò)修復(fù)及上網(wǎng)相關(guān)設(shè)置,修復(fù)IE, 自定義屏蔽網(wǎng)站 echo. echo 2. 病毒專殺工具,端口關(guān)閉工具,關(guān)閉自動(dòng)播放 echo.

50、 echo 3. 清除所有多余的自啟動(dòng)項(xiàng)目,修復(fù)系統(tǒng)錯(cuò)誤 echo. echo 4. 清理系統(tǒng)垃圾,提高啟動(dòng)速度 echo. echo Q.退出 echo. echo. :cho set choice= set /p choice= 請(qǐng)選擇 : IF NOT "%choice%"="" SET choice=%choice:0,1% if /i "%choice%"="1" goto ip if /i "%choice%"="2" goto setsave if /i &qu

51、ot;%choice%"="3" goto kaiji if /i "%choice%"="4" goto clean if /i "%choice%"="Q" goto endd echo 選擇無(wú)效,請(qǐng)重新輸入 echo. goto cho 只要學(xué)完本教程前面的章節(jié),上面的程序應(yīng)該能看懂了。 二、if else 條件語(yǔ)句 前面已經(jīng)談到,DOS 條件語(yǔ)句主要有以下形式 IF NOT ERRORLEVEL number command IF NOT string1=string2 com

52、mand IF NOT EXIST filename command 增強(qiáng)用法:IF string1 compare-op string2 command 增強(qiáng)用法中加上/I 就不區(qū)分大小寫了! 增強(qiáng)用法中還有一些用來(lái)判斷數(shù)字的符號(hào): EQU - 等于 NEQ - 不等于 LSS - 小于 LEQ - 小于或等于 GTR - 大于 GEQ - 大于或等于 上面的command命令都可以用小括號(hào)來(lái)使用多條命令的組合,包括 else 子句,組合命令中可以嵌套使用條件或循環(huán)命令。 例如 : IF EXIST filename ( del filename ) ELSE ( echo filename

53、 missing ) 也可寫成: if exist filename (del filename) else (echo filename missing) 但這種寫法不適合命令太多或嵌套命令的使用。 三、循環(huán)語(yǔ)句 1、指定次數(shù)循環(huán) FOR /L %variable IN (start,step,end) DO command command-parameters 組合命令: FOR /L %variable IN (start,step,end) DO ( Command1 Command2 ) 2、對(duì)某集合執(zhí)行循環(huán)語(yǔ)句。 FOR %variable IN (set) DO command command-parameters %variable 指定一個(gè)單一字母可替換的參數(shù)。 (set) 指定一個(gè)或一組文件??梢允褂猛ㄅ浞?。 comman

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論