




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、一:批處理文件批處理文件是擴展名為·bat 或·cmd的文本文件,包含一條或多條命令,由DOS或Windows系統(tǒng)內嵌的命令解釋器來解釋運行。批處理的本質,是一堆DOS命令按一定順序排列而形成的集合。二:常用命令:1. echo 和 : #關閉單行回顯echo off #從下一行開始關閉回顯echo off #從本行開始關閉回顯,一般批處理第一行都是這個echo on #從下一行開始打開回顯echo #顯示當前是 echo off 狀態(tài)還是 echo on 狀態(tài)echo. #輸出一個”回車換行”,空白行 #(同echo, echo; echo+ echo echo echo
2、/ echo")2. errorlevelecho%errorlevel%每個命令運行結束,可以用這個命令行格式查看返回碼默認值為0,一般命令執(zhí)行出錯會設 errorlevel 為1目錄操作類命令:3. dir顯示磁盤目錄命令dir #顯示當前目錄中的文件和子目錄dir /a #顯示當前目錄中的文件和子目錄,包括隱藏文件和系統(tǒng)文件dir c: /a:d #顯示 C 盤當前目錄中的目錄dir c: /a:-d #顯示 C 盤根目錄中的文件dir c:" /b/p #/b只顯示文件名,/p分頁顯示dir c:" /b/p #/w不顯示詳細信息dir *.exe /s
3、#顯示當前目錄和子目錄里所有的.exe文件4. 以樹形顯示當前路徑文件夾結構tree /f #顯示每個文件夾中文件的名字。5.md建立子目錄 md d:"a"b"c #如果 d:"a 不存在,將會自動創(chuàng)建中級目錄 #如果命令擴展名被停用,則需要鍵入 mkdir "a"b"c6.cd改變當前目錄(進入)cd #進入根目錄cd #顯示當前目錄cd /d d:sdk #可以同時更改盤符和目錄cd . #返回上一級目錄7.rd刪除子目錄命令rd abc #刪除當前目錄里的 abc 子目錄,要求為空目錄rd /s/q d:temp #
4、刪除 d:"temp 文件夾及其子文件夾和文件/q安靜模式磁盤操作類命令:8.format磁盤格式化命令9.chkdsk檢查磁盤當前狀態(tài)命令10.label建立磁盤卷標命令11.vol顯示磁盤卷標命令文件操作類命令:12. copy文件復制命令copy c:test.txt d:test.bak復制 c:test.txt 文件到 d: ,并重命名為 test.bakcopy con test.txt從屏幕上等待輸入,按 Ctrl+Z 結束輸入,輸入內容存為test.txt文件con代表屏幕,prn代表打印機,nul代表空設備copy 1.txt + 2.txt 3.txt合并 1.t
5、xt 和 2.txt 的內容,保存為 3.txt 文件如果不指定 3.txt ,則保存到 1.txtcopy test.txt +復制文件到自己,實際上是修改了文件日期13. xcopy目錄復制命令xcopy c: d:14. ren 文件改名命令ren d:temp tmp #支持對文件夾的重命名15. attrib修改文件屬性命令attrib filename #查看文件屬性 + #設置屬性- #清除屬性r #只讀文件a #存檔文件s #系統(tǒng)文件H #隱藏文件/S #處理當前文件夾及其所有子文件夾中的匹配文件/D #處理文件夾16. type顯示文件內容type c:boot.ini #顯
6、示指定文件的內容,程序文件一般會顯示亂碼type *.txt #顯示當前目錄里所有.txt文件的內容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)版本號命令20. t
7、ime,date 系統(tǒng)時鐘日期設置/顯示命令date #顯示當前日期,并提示輸入新日期,按""回車""略過輸入date/t #只顯示當前日期,不提示輸入新日期time #顯示當前時間,并提示輸入新時間,按""回車""略過輸入time/t #只顯示當前時間,不提示輸入新時間21. rem 和 :注釋注釋行不執(zhí)行操作22. color設置默認的控制臺前景和背景顏色邏輯命令:23. goto 和 :跳轉命令:label #行首為:表示該行是標簽行,標簽行不執(zhí)行操作goto label #跳轉到指定的標簽那一行24. se
8、t定義變量引用變量可在變量名前后加 % ,即 %變量名%set #顯示目前所有可用的變量,包括系統(tǒng)變量和自定義的變量echo %SystemDrive% #顯示系統(tǒng)盤盤符。系統(tǒng)變量可以直接引用set p #顯示所有以p開頭的變量,有就設errorlevel=1set p=aa1bb1aa2bb2 #設置變量p,并賦值為 = 后面的字符串,即aa1bb1aa2bb2echo %p% #顯示變量p代表的字符串,即aa1bb1aa2bb2echo %p:6% #顯示變量p中第6個字符以后的所有字符,即aa2bb2echo %p:6,3% #顯示第6個字符以后的3個字符,即aa2echo %p:0,3
9、% #顯示前3個字符,即aa1echo %p:-2% #顯示最后面的2個字符,即b2echo %p:0,-2% #顯示除了最后2個字符以外的其它字符,即aa1bb1aa2becho %p:aa=c% #用c替換變量p中所有的aa,即顯示c1bb1c2bb2echo %p:aa=% #將變量p中的所有aa字符串置換為空,即顯示1bb12bb2echo %p:*bb=c% #第一個bb及其之前的所有字符被替換為c,即顯示c1aa2bb2set p=%p:*bb=c% #設置變量p,賦值為 %p:*bb=c% ,即c1aa2bb2set /a p=39 #設置p為數值型變量,值為39set /a p
10、=39/10 #支持運算符,有小數時用去尾法,去尾得3,p=3set /a p=p/10 #用 /a 參數時,在 = 后面的變量可以不加%直接引用set /a p=”1&0 #”與”運算,要加引號。其它支持的運算符參見set/?set p= #取消p變量set /p p=請輸入屏幕上顯示”請輸入”,并會將輸入的字符串賦值給變量p注意這條可以用來取代 choice 命令注意變量在 if 和 for 的復合語句里是一次性全部替換的,如echo offset p=aaaif %p%=aaa ( echo %p% set p=bbb echo %p% )結果將顯示aaaaaa因為在讀取 if
11、語句時已經將所有 %p% 替換為aaa這里的""替換"",在 /? 幫助里就是指""擴充""、""環(huán)境變量擴充""可以啟用”延緩環(huán)境變量擴充”,用 ! 來引用變量,即 !變量名!echo offSETLOCAL ENABLEDELAYEDEXPANSIONset p=aaaif %p%=aaa ( echo %p% set p=bbb echo !p! )ENDLOCAL結果將顯示aaabbb還有幾個動態(tài)變量,運行 set 看不到%CD% #代表當前目錄的字符串%DATE%
12、#當前日期%TIME% #當前時間%RANDOM% #隨機整數,介于032767%ERRORLEVEL% #當前 ERRORLEVEL 值%CMDEXTVERSION% #當前命令處理器擴展名版本號%CMDCMDLINE% #調用命令處理器的原始命令行可以用echo命令查看每個變量值,如 echo %time%注意 %time% 精確到毫秒,在批處理需要延時處理時可以用到變量大全系統(tǒng)變量:系統(tǒng)將其根據事先定義的條件自動賦值,也就是系統(tǒng)已經給他們定義了值,不需要我們來給他賦值,我們只需要調用。%ALLUSERSPROFILE% 本地 返回“所有用戶”配置文件的位置。 %APPDATA% 本地 返
13、回默認情況下應用程序存儲數據的位置。 %CD% 本地 返回當前目錄字符串。 %CMDCMDLINE% 本地 返回用來啟動當前的 Cmd.exe 的準確命令行。 %CMDEXTVERSION% 系統(tǒng) 返回當前的“命令處理程序擴展”的版本號。 %COMPUTERNAME% 系統(tǒng) 返回計算機的名稱。 %COMSPEC% 系統(tǒng) 返回命令行解釋器可執(zhí)行程序的準確路徑。 %DATE% 系統(tǒng) 返回當前日期。使用與 date /t 命令相同的格式。由 Cmd.exe 生成。%ERRORLEVEL% 系統(tǒng) 返回上一條命令的錯誤代碼。通常用非零值表示錯誤。 %HOMEDRIVE% 系統(tǒng) 返回連接到用戶主目錄的本地
14、工作站驅動器號?;谥髂夸浿刀O置。用戶主目錄是在“本地用戶和組”中指定的。 %HOMEPATH% 系統(tǒng) 返回用戶主目錄的完整路徑?;谥髂夸浿刀O置。用戶主目錄是在“本地用戶和組”中指定的。 %HOMESHARE% 系統(tǒng) 返回用戶的共享主目錄的網絡路徑。基于主目錄值而設置。用戶主目錄是在“本地用戶和組”中指定的。 %LOGONSERVER% 本地 返回驗證當前登錄會話的域控制器的名稱。 %NUMBER_OF_PROCESSORS% 系統(tǒng) 指定安裝在計算機上的處理器的數目。 %OS% 系統(tǒng) 返回操作系統(tǒng)名稱。Windows 2000 顯示其操作系統(tǒng)為 Windows_NT。 %PATH% 系統(tǒng)
15、 指定可執(zhí)行文件的搜索路徑。 %PATHEXT% 系統(tǒng) 返回操作系統(tǒng)認為可執(zhí)行的文件擴展名的列表。 %PROCESSOR_ARCHITECTURE% 系統(tǒng) 返回處理器的芯片體系結構。%PROCESSOR_IDENTFIER% 系統(tǒng) 返回處理器說明。 %PROCESSOR_LEVEL% 系統(tǒng) 返回計算機上安裝的處理器的型號。 %PROCESSOR_REVISION% 系統(tǒng) 返回處理器的版本號。 %PROMPT% 本地 返回當前解釋程序的命令提示符設置。由 Cmd.exe 生成。 %RANDOM% 系統(tǒng) 返回 0 到 32767 之間的任意十進制數字。由 Cmd.exe 生成。 %SYSTEMDR
16、IVE% 系統(tǒng) 返回包含 Windows server operating system 根目錄(即系統(tǒng)根目錄)的驅動器。 %SYSTEMROOT% 系統(tǒng) 返回 Windows server operating system 根目錄的位置。 %TEMP% 和 %TMP% 系統(tǒng)和用戶 返回對當前登錄用戶可用的應用程序所使用的默認臨時目錄。%TIME% 系統(tǒng) 返回當前時間。使用與 time /t 命令相同的格式。由 Cmd.exe 生成。%USERDOMAIN% 本地 返回包含用戶帳戶的域的名稱。 %USERNAME% 本地 返回當前登錄的用戶的名稱。 %USERPROFILE% 本地 返回當前用
17、戶的配置文件的位置。 %WINDIR% 系統(tǒng) 返回操作系統(tǒng)目錄的位置。 25. pause暫停命令26. if判斷命令if ERRORLEVEL number command#判斷命令是否正確運行通常情況下,命令執(zhí)行成功后,系統(tǒng)變量ERRORLEVEL會被設置成0,若命令失敗,或遇到非法命令,系統(tǒng)變量ERRORLEVEL會被設置成非0。if string1=string2 command#判斷某兩個字符串是否相等if exit filename command#判斷驅動器、文件或文件夾是否存在if defined var command#判斷某個變量是否已經被賦值if 1 equ 2#判斷某兩
18、個數值是否相等EQU#等于=NEQ#不等于!=LSS#小于<LEQ#小于或等于<=GTR#大于>GEQ #大于或等于>=注:#ELSE 子句必須出現在同一行上的 IF 之后Example:if ""%1""=""/a"" echo 第一個參數是/aif /i ""%1"" equ ""/a"" echo 第一個參數是/a/i 表示不區(qū)分大小寫,equ 和 = 是一樣的其它運算符參見 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í)行的命令如果有指定的文件,則條件成立,運行命令,否則運行下一句。如if exist config.sys edit config.sysif errorlevel / if not errorlevel 數字 待執(zhí)行的命令如果返回碼等于指定的數字,則條件成立,運行命令,
20、否則運行下一句。如if errorlevel 2 goto x2 27. call命令調用子程序CALL drive:pathfilename batch-parametersbatch-parameters 指定批處理程序所需的命令行信息(參數)。28. exit命令退出命令29. for循環(huán)/F#分塊提取文件/D#顯示當前目錄下所有指定的目錄名稱/R #枚舉文件和目錄/L#計次循環(huán)子參數:tokens(塊)、delims(分塊標志)、eol(忽略行)、skip(跳過行)、userbackq(支持長路徑名)CMD窗口中:for %I in (command1) do command2批處理中
21、:for %I in (command1) do command21、for、in和do是for語句的關鍵字,它們三個缺一不可;2、%I是for語句中對形式變量的引用,就算它在do后的語句中沒有參與語句的執(zhí)行,也是必須出現的;3、in之后,do之前的括號不能省略;4、command1表示字符串或變量,command2表示字符串、變量或命令語句;echo offfor %I in () do echo %Ipause1、for語句的形式變量I,可以換成26個字母中的任意一個,這些字母會區(qū)分大小寫,也就是說,%I和%i會被認為不是同一個變量;形式變量I還可以換成其他的字符,但是,為了不與批處理中的
22、%0%9這10個形式變量發(fā)生沖突,請不要隨意把%I替換為%0 %9中的任意一個;2、in和do之間的command1表示的字符串或變量可以是一個,也可以是多個,每一個字符串或變量,我們稱之為一個元素,每個元素之間,用空格鍵、跳格鍵、逗號、分號或等號分隔;3、for語句依次提取command1中的每一個元素,把它的值賦予形式變量I,帶到do后的command2中參與命令的執(zhí)行;并且每次只提取一個元素,然后執(zhí)行一次do后的命令語句,而無論這個元素是否被帶到command2中參與了command2的運行;當執(zhí)行完一次do后的語句之后,再提取command1中的下一個元素,再執(zhí)行一次command2,
23、如此循環(huán),直到command1中的所有元素都已經被提取完畢,該for語句才宣告執(zhí)行結束;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 結算結果:%i%(變量起始值,每次遞加的步長,終止值)for /f "usebackq" %a in ("C:Program Filesjksing.txt") do (echo %a)顯示jksing中的內容,若去掉usebackq,則輸出C:Programfor /r %i in (*.txt) do (echo %fi)for %i in (c: d:
26、e: f:) do echo %i依次調用小括號里的每個字符串,執(zhí)行 do 后面的命令注意%i,在批處理中 for 語句調用參數用2個%默認的字符串分隔符是""空格鍵"",""Tab鍵"",""回車鍵""for %i in (*.txt) do find ""abc"" %i對當前目錄里所有的txt文件執(zhí)行 find 命令for /r . %i in (*.txt) do find ""abc""
27、 %i在當前目錄和子目錄里所有的.txt文件中搜索包含 abc 字符串的行for /r . %i in (.) do echo %pn顯示當前目錄名和所有子目錄名,包括路徑,不包括盤符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的一串數字,2是數字序列的開頭,8是結尾,1表示每次加1for /f %i in ('set
28、') do echo %i對 set 命令的輸出結果循環(huán)調用,每行一個for /f ""eol=P"" %i in ('set') do echo %i取 set 命令的輸出結果,忽略以 P 開頭的那幾行for /f %i in (d:"mp3.txt) do echo %i顯示 d:"mp3.txt 里的每個文件名,每行一個,不支持帶空格的名稱for /f ""delims="" %i in (d:"mp3.txt) do echo %i顯示 d:"
29、mp3.txt 里的每個文件名,每行一個,支持帶空格的名稱for /f ""skip=5 tokens=4"" %a in ('dir') do echo %a對 dir 命令的結果,跳過前面5行,余下的每行取第4列每列之間的分隔符為默認的""空格""可以注意到 dir 命令輸出的前5行是沒有文件名的for /f ""tokens=1,2,3 delims=- "" %a in ('date /t') do ( echo %a echo %b
30、echo %c )對 date /t 的輸出結果,每行取1、2、3列第一列對應指定的 %a ,后面的 %b 和 %c 是派生出來的,對應其它列分隔符指定為 - 和""空格"",注意 delims=- 后面有個""空格""其中 tokens=1,2,3 若用 tokens=1-3 替換,效果是一樣的for /f ""tokens=2* delims=- "" %a in ('date /t') do echo %b取第2列給 %a ,其后的列都給 %b30. 參
31、數%0 %1 %2 %3 %4 %5 %6 %7 %8 %9 %* i%命令行傳遞給批處理的參數%0 #批處理文件本身%1 #第一個參數%9 #第九個參數%* #從第一個參數開始的所有參數參數擴展:%1 #刪除引號(""),擴充 %1%f1 #將 %1 擴充到一個完全合格的路徑名%d1 #僅將 %1 擴充到一個驅動器號%p1 #僅將 %1 擴充到一個路徑%n1 #僅將 %1 擴充到一個文件名%x1 #僅將 %1 擴充到一個文件擴展名%s1 #擴充的路徑指含有短名%a1 #將 %1 擴充到文件屬性%t1 #將 %1 擴充到文件的日期/時間%z1 #將 %1 擴充到文件的大小%
32、$PATH#查找列在 PATH 環(huán)境變量的目錄,并將 %1擴充到找到的第一個完全合格的名稱。如果環(huán)境變量名未被定義,或者沒有找到文件,此組合鍵會擴充到空字符串可以組合修定符來取得多重結果:%dp1 #只將 %1 擴展到驅動器號和路徑%nx1 #只將 %1 擴展到文件名和擴展名%dp$PATH:#在列在 PATH 環(huán)境變量中的目錄里查找 %1,并擴展到找到的第一個文件的驅動器號和路徑%ftza1 #將 %1 擴展到類似 DIR 的輸出行31. find查找命令(外部命令)在文件中搜索字符串find ""abc"" c:"test.txt在 c:&
33、quot;test.txt 文件里查找含 abc 字符串的行如果找不到,將設 errorlevel 返回碼為1find /i “abc” c:"test.txt查找含 abc 的行,忽略大小寫find /c ""abc"" c:"test.txt顯示含 abc 的行的行數32. more逐屏顯示輸出more c:"test.txt #逐屏顯示 c:"test.txt 的文件內容33. assoc 和 ftype文件關聯assoc 設置'文件擴展名'關聯,關聯到'文件類型'ftype
34、設置'文件類型'關聯,關聯到'執(zhí)行程序和參數'當你雙擊一個.txt文件時,windows并不是根據.txt直接判斷用 notepad.exe 打開而是先判斷.txt屬于 txtfile '文件類型'再調用 txtfile 關聯的命令行 txtfile=%SystemRoot%"system32"NOTEPAD.EXE %1可以在""文件夾選項""""文件類型""里修改這2種關聯assoc #顯示所有'文件擴展名'關聯assoc .t
35、xt #顯示.txt代表的'文件類型',結果顯示 .txt=txtfileassoc .exe #顯示.exe代表的'文件類型',結果顯示 .exe=exefileftype #顯示所有'文件類型'關聯ftype exefile #顯示exefile類型關聯的命令行,結果顯示 exefile=""%1"" %* 設置.txt為word類型的文檔,可以看到.txt文件的圖標都變了assoc .txt=txtfile恢復.txt的正確關聯ftype exefile=""%1"&qu
36、ot; %*恢復 exefile 的正確關聯如果該關聯已經被破壞,可以運行 ,再輸入這條命令34. pushd 和 popd切換當前目錄echo offc: & cd" & md mp3 #在 C:" 建立 mp3 文件夾md d:"mp4 #在 D:" 建立 mp4 文件夾cd /d d:"mp4 #更改當前目錄為 d:"mp4pushd c:"mp3 #保存當前目錄,并切換當前目錄為 c:"mp3popd #恢復當前目錄為剛才保存的 d:"mp435. subst映射磁盤subst z
37、: "server"d #這樣輸入z:就可以訪問"server"d了subst z: /d #取消該映射subst #顯示目前所有的映時常用特殊符號: 1.#命令行回顯屏蔽符 2.%#批處理變量引導符 3.>#重定向符 4.>>#重定向符 5.<,>&,<& #重定向符 6.| #命令管道符 7. #轉義字符 8.& #組合命令 9.&& #組合命令 10.| #組合命令 11."" #字符串界定符 詳細介紹:1. % 批處理變量引導符 2. > ,&g
38、t;> 重定向符 > 清除文件中原有的內容后再寫入>> 追加內容到文件末尾,而不會清除原有的內容主要將本來顯示在屏幕上的內容輸出到指定文件中指定文件如果不存在,則自動生成該文件Example: echo hello > 1.txt echo world >>1.txt 這時候 1.txt 內容如下: hello world type c:"test.txt >prn屏幕上不顯示文件內容,轉向輸出到打印機echo hello world>con在屏幕上顯示hello world,實際上所有輸出都是默認 >con 的copy c
39、:"test.txt f: >nul拷貝文件,并且不顯示""文件復制成功""的提示信息,但如果f盤不存在,還是會顯示出錯信息copy c:"test.txt f: >nul 2>nul不顯示”文件復制成功”的提示信息,并且f盤不存在的話,也不顯示錯誤提示信息echo W > W>c:"test.txt生成的文件內容為 W > W 和 > 是控制命令,要把它們輸出到文件,必須在前面加個 符號3. <,>&,<& 重定向符<從文件中獲得輸入信息,而
40、不是從屏幕上,一般用date time label等需要等待輸入的命令>&將一個句柄的輸出寫入到另一個句柄的輸入中<& 剛好和>&相反,從一個句柄讀取輸入并將其寫入到另一個句柄輸出中 Example:echo offecho 2005-05-01>temp.txtdate <temp.txtdel temp.txt這樣就可以不等待輸入直接修改當前日期常用句柄:0、1、2,未定義句柄:39 1>nul 表示禁止輸出正確的信息 2>nul 表示禁止輸出錯誤信息。 其中的 1 與 2 都是代表某個數據流輸入輸出的地址(NT CMD 稱
41、之為句柄,MSDOS 稱之為設備)。 句柄 0 :標準輸入stdin,鍵盤輸入 句柄 1:標準輸出stdout,輸出到命令提示符窗口(console,代碼為 CON ) 句柄 2:標準錯誤stderr,輸出到命令提示符窗口(console,代碼為 CON ) 其中的 stdin 可被<重定向,stdout 可被>、>>重定向。 我們已經知道讀取文本中的內容可以用 for 命令,但如果只需要讀取第一行用 for 命令就有點麻煩。簡單的 辦法如下: echo off set /p str=<%0 echo %str% pause 運行顯示批處理文件自身的第一行:ech
42、o off 4. & ,&& ,| 組合命令 & 、&& 、|為組合命令,顧名思義,就是可以把多個命令組合起來當一個命令來執(zhí)行。這在批處理腳本里 是允許的,而且用的非常廣泛。因為批處理認行不認命令數目。&:語法:第一條命令 & 第二條命令 & 第三條命令. &允許在一行中使用 2 個以上不同的命令,當第一個命令執(zhí)行失敗了,也不影響后邊的命令執(zhí)行。 這里&兩邊的命令是順序執(zhí)行的,從前往后執(zhí)行。 比如: dir z: & dir y: & dir c: 以上命令會連續(xù)顯示z,y,c 盤的內容,不
43、理會該盤是否存在 &&:語法:第一條命令 && 第二條命令 && 第三條命令. 用這種方法可以同時執(zhí)行多條命令,當碰到執(zhí)行出錯的命令后將不執(zhí)行后面的命令,如果一直沒有出錯則 一直執(zhí)行完所有命令 這個命令和上邊的類似,但區(qū)別是,第一個命令失敗時,后邊的命令也不會執(zhí)行 dir z: && dir y: && dir c: |:語法:第一條命令 | 第二條命令 | 第三條命令. 用這種方法可以同時執(zhí)行多條命令,當一條命令失敗后才執(zhí)行第二條命令,當碰到執(zhí)行正確的命令后將不 執(zhí)行后面的命令,如果沒有出現正確的命令則一直執(zhí)行完
44、所有命令; 提示:組合命令和重定向命令一起使用必須注意優(yōu)先級 管道命令的優(yōu)先級高于重定向命令,重定向命令的優(yōu)先級高于組合命令 5. | 命令管道符 格式:第一條命令 | 第二條命令 | 第三條命令. 將第一條命令的結果作為第二條命令的參數來使用,記得在 unix 中這種方式很常見。 例如: dir *.* /s/a | find /c "".exe""管道命令表示先執(zhí)行 dir 命令,對其輸出的結果執(zhí)行后面的 find 命令該命令行結果:輸出當前文件夾及所有子文件夾里的.exe文件的個數type c:"test.txt|more這個和 more
45、 c:"test.txt 的效果是一樣的dir c:|find "txt" 以上命令是:查找C:所有,并發(fā)現 TXT 字符串。 FIND 的功能請用 FIND /? 自行查看 在不使 format 的自動格式化參數時,我是這樣來自動格式化A 盤的 echo y|format a: /s /q /v:system 用過 format 的都知道,再格盤時要輸入y 來確認是否格盤,這個命令前加上 echo y 并用|字符來將 echo y 的結果傳給format 命令 從而達到自動輸入 y 的目的6. 轉義字符 是對特殊符號<,>,& 的前導字符,在
46、命令中他將以上 3 個符號的特殊功能去掉僅只把他們當成符號而不使用他們的特殊意義。 Example:echo test >1.txt 結果則是:test > 1.txt 他沒有追加在 1.txt 里,只是顯示了出來 另外,此轉義字符還可以用作續(xù)行符號。 echo off echo 英雄 是 好 男人 pause 為什么轉義字符放在行尾可以起到續(xù)行符的作用呢?原因很簡單,因為每行末尾還有一個看不見的符號,即回車符,轉義字符位于行尾時就讓回車符失效了,從而起到了續(xù)行的作用7. "" 字符串界定符 雙引號允許在字符串中包含空格,進入一個特殊目錄可以用如下方法 cd &
47、quot;program files" cd progra1 cd pro* 以上三種方法都可以進入 program files 這個目錄 8. ; 分號 分號,當命令相同時,可以將不同目標用;來隔離但執(zhí)行效果不變,如執(zhí)行過程中發(fā)生錯誤則只返回錯誤報告,但程序仍會執(zhí)行。(有人說不會繼續(xù)執(zhí)行,其實測試一下就知道了) 比如: dir c:;d:;e:;z: 以上命令相當于 dir c: dir d: dir e: dir f: 如果其中 z 盤不存在,運行顯示:系統(tǒng)找不到指定的路徑。然后終止命令的執(zhí)行。 例:dir c:;d:;e:1.txt 以上命令相當于 dir c: dir d:
48、dir e:1.txt 其中文件 e:1.txt 不存在,但 e 盤存在,有錯誤提示,但命令仍會執(zhí)行。 如果目標路徑不存在,則終止執(zhí)行;如果路徑存在,僅文件不存在,則繼續(xù)執(zhí)行。 9. () 括號小括號在批處理編程中有特殊的作用,左右括號必須成對使用括號中可以包括多行命令,這些命令將被看成一個整體,視為一條命令行 括號在 for 語句和 if 語句中常見,用來嵌套使用循環(huán)或條件語句,其實括號()也可以單獨使用,請看例子。 Example:echo 1 & echo 2 & echo 3 可以寫成: ( echo 1 echo 2 echo 3 ) 上面兩種寫法效果一樣,這兩種寫法
49、都被視為是一條命令行。 注意:這種多條命令被視為一條命令行時,如果其中有變量,就涉及到變量延遲的問題 10. ! 感嘆號 在變量延遲問題中,用來表示變量,即%var%應該表示為!var!DOS 編程高級技巧 :一、交互界面設計 沒啥說的,看看高手設計的菜單界面吧: echo off cls title 終極多功能修復 :menu cls color 0A echo. echo = echo 請選擇要進行的操作,然后按回車 echo = echo. echo 1. 網絡修復及上網相關設置,修復IE, 自定義屏蔽網站 echo. echo 2. 病毒專殺工具,端口關閉工具,關閉自動播放 echo.
50、 echo 3. 清除所有多余的自啟動項目,修復系統(tǒng)錯誤 echo. echo 4. 清理系統(tǒng)垃圾,提高啟動速度 echo. echo Q.退出 echo. echo. :cho set choice= set /p choice= 請選擇 : 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 選擇無效,請重新輸入 echo. goto cho 只要學完本教程前面的章節(jié),上面的程序應該能看懂了。 二、if else 條件語句 前面已經談到,DOS 條件語句主要有以下形式 IF NOT ERRORLEVEL number command IF NOT string1=string2 com
52、mand IF NOT EXIST filename command 增強用法:IF string1 compare-op string2 command 增強用法中加上/I 就不區(qū)分大小寫了! 增強用法中還有一些用來判斷數字的符號: EQU - 等于 NEQ - 不等于 LSS - 小于 LEQ - 小于或等于 GTR - 大于 GEQ - 大于或等于 上面的command命令都可以用小括號來使用多條命令的組合,包括 else 子句,組合命令中可以嵌套使用條件或循環(huán)命令。 例如 : IF EXIST filename ( del filename ) ELSE ( echo filename
53、 missing ) 也可寫成: if exist filename (del filename) else (echo filename missing) 但這種寫法不適合命令太多或嵌套命令的使用。 三、循環(huán)語句 1、指定次數循環(huán) FOR /L %variable IN (start,step,end) DO command command-parameters 組合命令: FOR /L %variable IN (start,step,end) DO ( Command1 Command2 ) 2、對某集合執(zhí)行循環(huán)語句。 FOR %variable IN (set) DO command command-parameters %variable 指定一個單一字母可替換的參數。 (set) 指定一個或一組文件??梢允褂猛ㄅ浞?。 comman
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 餐飲行業(yè)食品安全責任證明(7篇)
- 國際商法合同法模塊測試題
- 零售連鎖行業(yè)門店運營管理解決方案
- 行政管理的政策協調機制試題及答案
- 行政管理學的社會責任平衡試題及答案
- 公文處理能力提升考試試題及答案
- 行政管理在全球化中的作用試題及答案
- 2025助力臺企保密協議合同書
- 2025設備租賃版合同
- 興趣導向學習2025年建筑工程試題及答案
- 新版出口報關單模板
- 我的家鄉(xiāng)日照莒縣宣傳介紹課件
- 水電站水利工程施工組織設計畢業(yè)論文
- 中國傳統(tǒng)文化之誠實守信
- 家長進課堂--小學生食品安全知識
- 法學專業(yè) 我國刑滿釋放人員就業(yè)權利保障
- 15ZJ001 建筑構造用料做法
- 便利店進貨查驗記錄制度范本
- 高中英語-英語說課
- 矩形渠施工方案
- 聯想EAP案例分析
評論
0/150
提交評論