導航:首頁 > 程序命令 > bat文件命令大全

bat文件命令大全

發布時間:2023-01-26 23:13:44

⑴ bat命令怎麼用

1、bat文件稱批處理文件,是可執行文件,winodws雙擊可以運行,dos或控制台下輸入主文件回車可運行。
2、bat命令稱批命令。
3、批命令就是成批的執行dos或控制項台命令,來完成對計算機操作。
4、把dos或控制項台命令,按照要求成批的寫入一個文本文件,然後把它保存為擴展名為.bat的文件,然後在dos或控制台或windows下運行這個文件,它就會按照批處理文件里的指令一步步操作計算機了。

⑵ 求腳本(BAT)基本命令

1.「@echo off」--我們所寫的BAT一開始一般都有這一句,這一句的作用是:使所有的命令響應隱藏。「@」--本行命令不回顯。(本來如果你用echo off就可以了,但是還是能夠看到echo off這條命令在CMD下,影響美觀) 2.「color 1e」--設置默認的控制台前景和背景顏色。當前我設為藍底黃字,具體顏色請在CMD下用「color /?」查詢。 --這里又提到了這個參數「/?」,一般CMD下命令後加「/?」就會顯示這條命令的幫助。 3.「rem」--注釋作用,批處理執行過程中前不執行它,rem 後的字元只作注釋作用。
4.「title」--設置命令提示窗口的窗口標題。默認為「cmd」。改成自己喜歡的多有個性,嘿嘿。
5.「cls」--不多說,清屏命令。主要是怕前面的一些空白或字元出現影響美觀。
6.「set」--這個命令的作用很大,請用「set /?」查詢具體使用方法。本例「set topip=172.16.」是將一個名為「topip」的變數值設為「172.16.」。注意CMD下變數的設置不區別數字與字元,能夠自動根據提供的值調整。下行「set theip=0.0」同理。
7.「echo .」--在新行中顯示一個「.」。echo命令能顯示其後的comment。這里提幾個有趣實用的用法--「echo.」,注意與前面的不同,「echo」與「.」間無空格。這條命令如同一個回車,在新行不顯示任何信息並換行。「echo 」,實現響鈴的提示音。後面一個字元的輸入方法是在CMD下用「ctrl+G」,而這個字元得到的方法是CMD下用命令「echo "ctrl+G" >ex.txt」,存入ex.txt文件,再從那裡提取出來的。嘿嘿,如果你懶得做,就我在上面提供的字元嘍。
8.「if」--這條命令也會經常用到,請用「if /?」學習更多信息。本例「if not exist scanipc.exe (echo 文件錯誤!……) 」,實現功能:當同級目錄下不存在「scanipc.exe」時,提示「文件錯誤!……」。否則不提示。「if not exist filename 」在批處理中使用比較多些。
9.「:top」,設置一個標志點,標志名為「top」。「:」的作用就是設置標志。網上有文章說「使用"::comment"作為注釋比"rem comment"執行效率更高。」我相信,這里也建議大家,如果BAT中注釋較多時,請使用「::comment」設置。
10.「set /p pno=」--設置一個變數,並接受用戶輸入。BAT不需要預先聲明變數,只在需要時設置。參數「/p」:將變數數值設成用戶輸入的一行輸入。
11.「if %pno% gtr 9 gotoonerrorspno」--檢驗用戶輸入值是否大於9,是,則轉到一個指定標志點。這里注意BAT中變數引用時要在前後加「%」,但在if語句中可有可無,具體應用大家多寫幾遍就有體會。
12.「goto label」--無條件跳轉到指定標志位並向後執行。BAT好像只有這么一個跳轉語句了,作用不用我說,用了就知道。注意不要構成死循環。

小結:到此,完成了顏色設置、注釋版權說明、標題設置、變數初始化、歡迎信息、功能界面初始化、標志點設置(因為歡迎信息只顯示一次而功能界面要多次使用所以將標志點設置在歡迎信息的後面。)命令的接受與跳轉。;功能界面一般要用「tab」鍵調整相對位置,才能起到美觀的效果。請多練習幾遍領會。;大家在寫腳本過程中要注意標志點的設置位置,才能起到合適的效果。一般寫過幾個腳本會有些感受。;接著接受用戶輸入後「cls」清屏開始執行指定功能。注意這個cls的作用。因為清屏可以在此時,也可以在每個命令執行之前,但如果在每個命令執行之前用的請,那麼要寫的cls就多了,於是把cls寫在這里合適,方便節約快捷。

大家在寫腳本時也應當注意這方面的技巧,將使你寫出更加高效節約方便的代碼。在每次寫完腳本後合理地整合一下自己的代碼。能積累不少經驗。;另外,鑒於部分人仍不知道如何建立BAT文件與運行,請:打開記事本,寫入代碼,保存,保存類型為「所有文件*.*」,文件名為「name*.BAT」。保存後,雙擊運行。因為一般BAT運行很快,所以你可能只看到窗口一閃就消失了,那麼你可以在exit 之前加pause確保能看見運行結果。到此,你應該能夠寫一個很簡單的腳本了,實現一些界面控制。

例1: @echo off color ca title 這是我第一個BAT腳本。 echo 這是我第一個BAT腳本。不錯啊。 pause >nul exit 第二節:(提一些好用的命令)以下設置的都是功能段,在「goto step%pno%」跳轉到相應功能段後,開始執行相應功能。一般命令段: step1:ping命令。(在echo中變數的引用請注意前後加「%」號,否則會導致程序出錯。)我們常用的ping命令:其實很簡單,自己看幫助啦。本句「ping %topip%%theip% -n 1 |findstr 100%>nul」將ping 只發送一次數據包,這樣命令執行起來就快多了,但這樣所會引起一定概率的誤判,而我們在內網這種概率很低,低到可以忽略。所以本人使用參數「-n 1」減少執行時間。將結果不回顯而通過管道命令「|」送給findstr分析,findstr查找是否存在「100%」,並將回顯「丟棄」--「>nul」。因為如果ping一台主機如果返回的結果有「100%」存在說明「不在線。或者有防火牆阻擋。」。所以用findstr確定字元串「100%」的存在性,因為 findstr也有回顯,但我們並不需要,所以將它「丟棄」,使用參數「>nul」將指定命令回顯丟棄。(這一句命令是重點,請仔細領會。)又因為findstr確定指定字元串的存在性後會設定環境變數「errorlevel」的值,所以我們根據「if %errorlevel% equ 0 (command)」,判斷findstr的執行結果就行了,也就不需要有回顯。 「errorlevel」作用很大,一般命令行下的命令執行後都有一個特別的errorlevel,我們就可以根據相應的「返回值」作出相應判斷並執行相應功能。findstr如果找到指定字元串,則有errorlevel=0,說明:IP不在線。那麼既然不在線,我們就沒有向下執行的必要了,直接跳回top界面功能接受下一次指令。如果IP有不同回應,說明在線,則開始檢測共享。「net view \\%topip%%theip%\」--查看指定IP的共享清單。net詳細命令請自行查閱。列出共享清單後返回功能界面。 step2:打開共享一。「explorer \\%topip%%theip%\」,用資源管理器打開指定的IP根。注意語法,其它也沒有什麼。 step3:IPC$空連接。「net use \\%topip%%theip%\ipc$ "" /user:"administrator"」,一個很老的漏洞,但也許內網還有機子存在哩,嘿嘿,語法就是這樣。 step4:一般信息。「ipconfig /all」--用於得到本機的IP與MAC等信息,很好用的命令。語法如示。 「nbtstat -na %topip%%theip%」--用於得到他方機子的一些信息,語法如示。另請自查幫助。 step5:Scanipc。用命令行打開了一個程序而已。在命令行下執行其它命令也就是這樣啦。 step6:返回時間。「net time \\%topip%%theip%」--探測指定機子時間,語法如示。 step7:遠程連接。「net use \\%topip%%theip%\admin$ "" /user:"administrator"」,嘿嘿,administrator空密碼連接。最簡單的入侵啦,嘿嘿嘿。語法如示。 step8:本機信息。跳到另一個功能界面執行相應功能。 step9:高級命令。跳到另一個功能界面執行相應功能。 step0:退出程序。一個exit退出腳本。「exit」,退出CMD。 onerrorsip:實現錯誤提示,並重新執行step1。 onerrorspno:實現錯誤提示,並重新跳轉到功能界面。高級命令段:引用前面已給定的IP,並對其進行一些高級操作。重新繪制功能界面。首先,注意在一個BAT文件中,不允許出現有標志名的重復。 step11:條件連接。設定兩個變數,分別為用戶名與密碼。注意到有一個默認的功能。實現原理是,當接受到用戶輸入為空時(即一個回車),變數將保持不變。條件連接語法如示。比前面遠程空密碼連接更高級一點,嘿嘿。 step12:打開共享。打開已經連接成功的對方計算機的指定盤。打開指定盤語法如示。 step13:發送消息。向對方發送消息。要求雙方的messager服務開啟,否則無法發送成功。發送消息語法如示。 step14:遠程關機。設置關機時間與關機理由,用shutdown程序關閉對方計算機,嘿嘿,惡作劇。要求你連接成功,並有 shutdown程序支持。shutdown語法自查幫助。 step15:溢出CMD。嘿嘿,溢出到對方的CMD下,算是一個真正的入侵了。當然需要用戶名與密碼嘍。要求用戶名與密碼正確並對方默認支持遠程管理。並有psexec程序支持。psexec語法如示,並請自查幫助。 step16:結束進程。嘿嘿,不說也知道,結束對方已知進程。要求連接成功並有pskill程序支持。惡作劇類,有惡意成分。嘿嘿。小心使用。 step17:ipc$連接。同step3. step18:斷開連接。斷開與對方的連接,就是擦屁股啦,以免讓對方有所察覺。這個好習慣要養成。語法如示。 step19:一般命令。返回前面一個功能界面。 step20:結束程序。退出。 step110:AT命令,令對方在指定時間運行指定命令。有點像木馬,嘿嘿。要求連接成功。因為節約變數,所以引用了前面的暫不使用的變數。好習慣。哈哈。 step111:telnet。遠程telnet。不要說你一點都不知道,語法如示並請自查幫助。 step112:更改主IP。主要是為了使我們的使用方便,對某個特定IP段探測能夠簡化輸入。如主IP改成「172.16.130.」,那麼專門對130探測,而且輸入IP時只需輸入最後位,嘿嘿,多方便啊。 step113:任意命令。主要是接受用戶輸入並執行用戶的輸入罷了,結構如示。本機信息段:主要是對本機信息的一些查詢語法。 stepm1:ipconfig,不說了。但請注意到,在功能界面的實現上有一點,「&」符號,因為「&」符號在CMD下是命令連接符,如果光用「&」會讓BAT誤解為其後的都是命令。但我們只是希望輸出一個「&」罷了,於是用「^」符號連接符表明只是輸出「&」,而不是實現命令連接。這里提一下「&」命令連接符,例如:echo frist&echo second.同效於: echo frist echo second. 只是實現結合兩行命令在同一行實現。類如一個很簡單的批處理啦。再提一下「^」符號連接符,對一些特殊符號可能在CMD下無法正確如願顯示,可用「^」連接,以達到如期效果。用了「^」在文本中佔了一位空間,但在輸出時它並不顯示,所以注意界面的布置。 stepm2:本機進程。利用命令行下的進程工具查看進程。要求pslist程序支持。 stepm3:本機用戶。就是查詢一下本機用戶,也許會發現機了被動過的痕跡。 stepm4:結束進程。在命令行下結束本機進程。要求有pskill程序支持。 stepm5:本機埠。也許能看出被攻擊或被入侵的痕跡。語法如示。 stepm6:共享情況。看看本機的共享是否真的如你所想,如你所見。否則請注意安全嘍。語法如示。 stepm7:啟動項值。在命令行下導出啟動項值並給出結果。比魔法兔子什麼的快多了,就是界面不是很好看,呵呵。語法如示。 stepm0:退出程序。退出。小結:到此,您學習過了一些有用的命令與應用。以及大部分的網路命令與外部程序的使用。接下來你可以模擬IP小工具寫出適合更自己的IP小工具哦。注意每執行完一項功能後要用goto返回功能界面,否則腳本無條件向下繼續執行。;errorlevel的應用。在BAT中,errorlevel的作用很大,大家在使用過程中通過多次接觸,感受一下如何玩轉errorlevel。在執行完一個程序後,可以用echo %errorlevel%查看程序運行後是如何設定errorlevel的值。;if的應用。在BAT中,if語句的作用也很大,特別與errorlevel結合實現自動判斷。以及一些基本條件判斷。請查看"if /?" 學習更詳細的說明。;變數的接受與傳遞。這方面的感覺需要大家多寫BAT才能有所感觸。如何合理與高效的應用變數,能使你的腳本更加漂亮。計算機語言都是實踐性很強的,我們學習理論只是基礎,通過大量的實踐才能真正掌握一門語言的應用。 第三節:(一些應用技巧與命令)接下來我們看我的「代理伺服器搜索組件 (ver 2.1)」, 1.「>」與「>>」的區別。 「>」--把指定數據傳送到指定文件或區域。有覆蓋作用,從文件頭開始重寫文件。如指定文件不存在,則新建文件並存入指定數據。 「>>」--以追加方式將指定數據傳送到指定文件或區域。從文件結尾開始寫入指定內容。這兩個功能有區別,請注意選擇合適的傳送方式傳送數據。例如:「echo 文本內容。>link.txt」與「echo 文本內容。>>link.txt」。若本不存在文件link.txt或文件link.txt內容為空,那麼兩條命令的運行結果相同。但如果link.txt不為空,那麼第一條命令將清除link.txt所有內容並存入數據「文本內容。 」保存。而第二條命令只在link.txt的文件尾(另起一行,注意每一個「>>」都會另起一行寫入新數據)追加數據「文本內容。」而以前的內容保持不變。還要特別提一個前面說過的「丟棄」用法「>nul」,因為我們有時候只需要命令的運行而並不需要看到命令的運行結果以及回顯,但這些命令又會出現我們並不需要看到的回顯,影響美觀。故在其後追加「>nul」,丟棄回顯。 2.循環語句的說明。例2: :puship set /p tip= if %tip%==%tbip% goto step1 set tbip=%tip% echo %tip% >>link.txt goto puship 本例中「if %tip%==%tbip% goto step1」與「if %tip% equ %tbip% goto step1」效果一樣。本例的作用是接受用戶帖入數據。關鍵技術在於:因為用戶帖入數據我們不能使用戶每次輸入都詢問是否結束,而需要實現「 智能化」的判斷,但如何以最少的代碼、最簡單的方法實現所謂的「智能化」呢。分析用戶輸入情況:因為一般用戶帖入數據都不會出現重復,所以我們利用這個特點,分析用戶的數據,當用戶帖入列表時,分析數據並將數據存入相應文本,以備後用。當用戶粘帖文本結束後,再加一個回車,因為最後一次變數沒有接受到任何修改,於是保持默認不變(也就是之前的數據。),再通過我們之前的數據備份對照,分析是否不變,是,則跳出循環。這樣,我們通過兩個變數以一個IF比較實現相對簡單的「智能化」。嘿嘿,這一點代碼想了我一個小時。這么說不知道大家是否能理解。請仔細參透例2的技術要點。 3.「FOR /F "eol=; tokens=1 delims=: " %%i in (link.txt) do (set /a Allip=Allip+1>nul)」 這句FOR語句是復雜的雜合語句。首先請用for /?查閱詳細用法,這里不再復述。但是特別要提一點的就是批處理與直接命令行下的CMD的區別在FOR語句上。批處理時,變數引用需要有兩個「%」號,否則無法正確執行,而CMD下不用,只需一個「%」。 「set /a Allip=Allip+1>nul」--實現算術運算,變數Allip的自增,注意大小寫。把回顯「丟棄」。本例實現對文件link.txt內容計數,忽略以「;」開頭的行。這就是為什麼我們在前面要用「echo ;:文本>link.txt」來創建文本的意義所在。 4.「call toping %%i」--從批處理程序調用另一個批處理程序。調用另一個批處理「toping.bat」(因為BAT可以直接運行所以不需要後綴BAT),並有參數傳遞。參數來自於FOR語句的提取。「FOR /F "eol=; tokens=1 delims=: " %%i in (link.txt) 」--從link.txt的每行中提取文本,從每行的開頭第一個字元開始(tokens=1),以「:」界定提取結尾(delims=: )。把提取結果賦給變數i。 5.「type」--在命令行下顯示指定文件的內容。相信大家應該很熟悉,不多說了。注意與「>或>>」的結合使用,或與其它操作符的結合使用。 6.「%1」--在CMD下,一個BAT能夠接受同時9位的參數,「%1~%9」,分別對應給定的參數變數。「%0」,即是文件本身。我們在使用BAT的過程中會經常遇到兩個或兩個以上腳本間需要參數傳遞。那麼請好好掌握這個用法,多說無益,需要大家在實踐中積累經驗。 7.再說一些比較邊緣,但大家比較興趣的命令。呵呵,不要做壞事。 net user admin 123 /add net localgroup administrators admin /add net localgroup users admin /del net user admin /active:yes net user net user admin net user admin /del 「net user admin 123 /add」--添加名為「admin」,密碼為「123」的用戶,如果「123」不寫,則默認密碼為空。 「net localgroup administrators admin /add」--將用戶「admin」加入「administrators」組,嘿嘿,高許可權。 「net localgroup users admin /del」--將「admin」從「users」組刪除。呵呵,因為用戶新加進去時都是「users」組,許可權比較低,所以要從這個組跳出來,保證administrators組的許可權正式發揮作用,如果不這么做,對方系統會默認你的最低許可權。 「net user admin /active:yes」--怕沒法使用沒有啟動,不要緊,激活這個帳號,嘿嘿。 「net user」--看看用戶有多少哦。 「net user admin」--看看剛剛加的用戶信息如何,是否如我所想,如我所願呢。 「net user admin /del」--刪除用戶admin。 -------------------------------------------------------------------------------------------------------------------

⑶ bat批處理命令大全

我有一個txt格式的文檔,但是字數太多粘貼不上來(超過10000字)你可以加我,我傳給你
目錄:第一章 批處理基礎 第一節 常用批處理內部命令簡介 1、REM 和 :: 2、ECHO 和 @ 3、PAUSE 4、ERRORLEVEL 5、TITLE 6、COLOR 7、mode 配置系統設備 8、GOTO 和 : 9、FIND 10、START 11、assoc 和 ftype 12、pushd 和 popd 13、CALL 14、shift 15、IF 16、setlocal 與 變數延遲 17、ATTRIB 顯示或更改文件屬性 第二節 常用特殊符號 1、@ 命令行回顯屏蔽符 2、% 批處理變數引導符 3、> 重定向符 4、>> 重定向符 5、<、>&、<& 重定向符 6、| 命令管道符 7、^ 轉義字元 8、& 組合命令 9、&& 組合命令 10、|| 組合命令 11、"" 字元串界定符 12、, 逗號 13、; 分號 14、() 括弧 15、! 感嘆號 第二章 FOR命令詳解 一、基本格式 二、參數 /d 三、參數 /R 四、參數 /L 五、參數 /F 第三章 FOR命令中的變數 一、 ~I - 刪除任何引號("),擴展 %I 二、 %~fI - 將 %I 擴展到一個完全合格的路徑名 三、 %~dI - 僅將 %I 擴展到一個驅動器號 四、 %~pI - 僅將 %I 擴展到一個路徑 五、 %~nI - 僅將 %I 擴展到一個文件名 六、 %~xI - 僅將 %I 擴展到一個文件擴展名 七、 %~sI - 擴展的路徑只含有短名 八、 %~aI - 將 %I 擴展到文件的文件屬性 九、 %~tI - 將 %I 擴展到文件的日期/時間 十、 %~zI - 將 %I 擴展到文件的大小 十一、 %~$PATH:I 第四章 批處理中的變數 一、系統變數 二、自定義變數 第五章 set命令詳解 一、用set命令設置自定義變數 二、用set命令進行簡單計算 三、用set命令進行字元串處理 1、字元串替換 2、字元串截取 第六章 if命令講解 第一種用法:IF [NOT] ERRORLEVEL number command 第二種用法:IF [NOT] string1==string2 command 第三種用法:IF [NOT] EXIST filename command 第四種用法:IF增強的用法 第七章 DOS編程高級技巧 一、界面設計 二、if…else…條件語句 三、循環語句 四、子程序 五、用ftp命令實現自動下載 六、用7-ZIP實現命令行壓縮解壓功能 七、調用VBScript程序 八、將批處理轉化為可執行文件 九、時間延遲 1、利用ping命令延時 2、利用for命令延時 3、利用vbs延遲函數,精確度毫秒,誤差1000毫秒內 4、僅用批處理命令實現任意時間延遲,精確度10毫秒,誤差50毫秒內 十、模擬進度條 十一、特殊字元的輸入及應用 十二、隨機數(%random%)的應用技巧 十三、變數嵌套 與 命令嵌套 全文: http://xiangkg.blog.163.com 1、更正了所有的錯別字,適當排版,增加條理性。 2、運行改善所有例子,並糾正了一些語法錯誤。 3、補充了一些不完全的地方。 4、第一章參考了網上許多教程匯編而成。 5、20080229補充了變數延遲的問題。 6、20080305修改了參數usebackq的說明 7、20080310增加了特殊字元的輸入及應用 8、20080311修改了子程序部分 9、20080313修改了echo說明,歸納了9個應用方法 10、20080320增加任意時間延遲方法 11、20080321增加了set計算中十進制與八進制混淆問題的說明 12、20080325修正dos數值計算范圍:-2147483648 至2147483647,即-2^31~2^31-1 13、20080326增加隨機數的應用 14、20080327修改了「if增強用法」中的defined語句說明 15、20080402增加變數嵌套與命令嵌套,重要技巧之一。很高興為你回答。如果你覺得滿意的話請採納。謝謝!

⑷ bat文件x指令


R:>x/?

復制文件和目錄樹。


XCOPY source [destination] [/A | /M] [/D[:date]] [/P] [/S [/E]] [/V] [/W]

[/C] [/I] [/Q] [/F] [/L] [/G] [/H] [/R] [/T] [/U]

[/K] [/N] [/O] [/X] [/Y] [/-Y] [/Z] [/B]

[/EXCLUDE:file1[+file2][+file3]...]


source 指定要復制的文件。

destination 指定新文件的位置和/或名稱。

/A 僅復制有存檔屬性集的文件,但不更改屬性。

/M 僅復制有存檔屬性集的文件,並關閉存檔屬性。

/D:m-d-y 復制在指定日期或指定日期以後更改的文件。

如果沒有提供日期,只復制那些源時間比目標時間新的文件。

/EXCLUDE:file1[+file2][+file3]...

指定含有字元串的文件列表。每個字元串在文件中應位於單獨的一行。

如果任何字元串與復制文件的絕對路徑的任何部分相符,則排除復制

該文件。例如,指定如 obj 或 .obj 的字元串會分別排除目錄

obj 下面的所有文件或帶有 .obj 擴展名的所有文件。

/P 創建每個目標文件之前提示您。

/S 復制目錄和子目錄,不包括空目錄。

/E 復制目錄和子目錄,包括空目錄。與 /S /E 相同。可以用來修改 /T。

/V 驗證每個新文件的大小。

/W 提示您在復制前按鍵。

/C 即使有錯誤,也繼續復制。

/I 如果目標不存在,且要復制多個文件,則假定目標必須是目錄。

/Q 復制時不顯示文件名。

/F 復制時顯示完整的源文件名和目標文件名。

/L 顯示要復制的文件。

/G 允許將加密文件復制到不支持加密的目標。

/H 也復制隱藏文件和系統文件。

/R 覆蓋只讀文件。

/T 創建目錄結構,但不復制文件。不包括空目錄或子目錄。/T /E 包括

空目錄和子目錄。

/U 只復制已經存在於目標中的文件。

/K 復制屬性。一般的 X 會重設只讀屬性。

/N 用生成的短名稱復制。

/O 復制文件所有權和 ACL 信息。

/X 復制文件審核設置(隱含 /O)。

/Y 取消提示以確認要覆蓋現有目標文件。

/-Y 要提示以確認要覆蓋現有目標文件。

/Z 在可重新啟動模式下復制網路文件。

/B 復制符號鏈接本身與鏈接目標相對。

/J 復制時不使用緩沖的 I/O。推薦復制大文件時使用。


開關 /Y 可以預先在 COPYCMD 環境變數中設置。

這可能被命令行上的 /-Y 覆蓋。


R:>

⑸ bat文件命令大全

我有本bat命令大全電子書,但是上面無法復制,含有幾百個命令的解釋用法還有例子,很好的,如果想要的話,留下郵箱,我給你發過去 bat批處理教程 OK,never claver and get to business(閑話少說言歸正傳)。批處理,也稱為批處理腳本,英文譯為BATCH,批處理文件後綴BAT就取的前三個字母。它的構成沒有固定格式,只要遵守以下這條就ok了:每一行可視為一個命令,每個命令里可以含多條子命令,從第一行開始執行,直到最後一行結束,它運行的平台是DOS。批處理有一個很鮮明的特點:使用方便、靈活,功能強大,自動化程度高。我不想讓自己寫的教程枯燥無味,因為牽纏到代碼(批處理的內容算是代碼吧?)的問題本來就是枯燥的,很少有人能面對滿屏幕的代碼而靜下心來。所以我會用很多簡單實用的例子讓讀這篇教程的朋友去體會批處理的那四射的魅力,感受它那古靈精怪的性格,不知不覺中愛上批處理(暈,怎麼又是愛?到底批處理和愛有什麼關系?答案:沒有!)。再說句「閑話」:要學好批處理,DOS基礎一定要牢!當然腦子靈活也是很重要的一方面。 例一、先給出一個最easy的批處理腳本讓大家和它混個臉熟,將下面的幾行命令保存為name.bat然後執行(以後文中只給出代碼,保存和執行方式類似): ping sz.tencent.com > a.txt ping sz1.tencent.com >> a.txt ping sz2.tencent.com >> a.txt ping sz3.tencent.com >> a.txt ping sz4.tencent.com >> a.txt ping sz5.tencent.com >> a.txt ping sz6.tencent.com >> a.txt ping sz7.tencent.com >> a.txt exit 是不是都能看的懂?是不是很easy?但它的作用卻是很實用的,執行這個批處理後,可以在你的當前盤建立一個名為a.txt的文件,它裡面記錄的信息可以幫助你迅速找到速度最快的QQ伺服器,從而遠離「從伺服器中轉」那一痛苦的過程。這里>的意思,是把前面命令得到的東西放到後面所給的地方,>>的作用,和>的相同,區別是把結果追加到前一行得出的結果的後面,具體的說是下一行,而前面一行命令得出的結果將保留,這樣可以使這個a.txt文件越來越大(想到如何搞破壞了??)。By the way,這個批處理還可以和其他命令結合,搞成完全自動化判斷伺服器速度的東東,執行後直接顯示速度最快的伺服器IP,是不是很爽?後面還將詳細介紹。 例二、再給出一個已經過時的例子(a.bat): @echo off if exist C:\Progra~1\Tencent\AD\*.gif del C:\Progra~1\Tencent\AD\*.gif a.bat 為什麼說這是個過時的例子呢?很簡單,因為現在已經幾乎沒有人用帶廣告的QQ了(KAO,我的QQ還顯示好友三圍呢!!),所以它幾乎用不上了。但曾經它的作用是不可小窺的:刪除QQ的廣告,讓對話框乾乾凈凈。這里用的地址是QQ的默認安裝地址,默認批處理文件名為a.bat,你當然可以根據情況自行修改。在這個腳本中使用了if命令,使得它可以達到適時判斷和刪除廣告圖片的效果,你只需要不關閉命令執行後的DOS窗口,不按CTRL+C強行終止命令,它就一直監視是否有廣告圖片(QQ也再不斷查看自己的廣告是否被刪除)。當然這個腳本佔用你一點點內存,呵呵。 例三,使用批處理腳本查是否中冰河。腳本內容如下: @echo off netstat -a -n > a.txt type a.txt | find "7626" && echo "Congratulations! You have infected GLACIER!" del a.txt pause & exit 這里利用了netstat命令,檢查所有的網路埠狀態,只需要你清楚常見木馬所使用的埠,就能很easy的判斷出來是否被人種了冰河。然這不是確定的,因為冰河默認的埠7626,完全可以被人修改。這里介紹的只是方法和思路

⑹ bat文件x指令

x是用來復制文件和目錄樹,下面是這個復制指令的詳細解釋和參數,你可以參考以後用來編寫你的批處理文件。

XCOPY 源 [目標] [/A | /M] [/D[:d ate]] [/P] [/S [/E]] [/V] [/W]
[/C][/I][/Q][/F][/L][/G][/H][/R][/T][/U]
[/K][/N][/O][/X][/Y][/-Y][/Z][/B][/J]
[/排除:file1[+file2][+file3]...][/壓縮]

源 指定要復制的文件。
目標 指定新文件的位置和/或名稱。
/A 僅復制具有存檔屬性集的文件,
不更改屬性。
/M 僅復制具有存檔屬性集的文件,
關閉存檔屬性。
/D:m-d-y 復制在指定日期或之後更改的文件。
如果未給定日期,則僅復制那些
源時間比目標時間新的文件。
/排除:file1[+file2][+file3]...
指定包含字元串的文件列表。 每個字元串
應位於文件的單獨行中。 當任意
字元串與要復制的文件的絕對路徑的任意部分
匹配時,將從復制中排除該文件。 例
如,指定 \obj\ 或 .obj 等字元串將排除
目錄 obj 下的所有文件或所有具有
.obj 擴展名的文件。
/P 創建每個目標文件之前會提示你。
/S 復制除空目錄和空子目錄之外的目錄和子目錄。
/E 復制目錄和子目錄,包括空目錄和空子目錄。
與 /S /E 相同。可用於修改 /T。
/V 驗證每個新文件的大小。
/W 提示你在復制前按鍵。
/C 即使出現錯誤也繼續復制。
/I 如果目標不存在,且正在復制多個文件,
則假定目標必須為目錄。
/-I 如果目標不存在,且正在復制單個指定文件,
則假定目標必須為文件。
/Q 復制時不顯示文件名。
/F 復制時顯示完整的源文件名和目標文件名。
/L 顯示要復制的文件。
/G 允許將加密文件復制到
不支持加密的目標。
/H 同時復制隱藏文件和系統文件。
/R 覆蓋只讀文件。
/T 創建目錄結構,但不復制文件。不
包括空目錄或空子目錄。/T /E 包括
空目錄和空子目錄。
/U 僅復制已存在於目標中的文件。
/K 復制屬性。普通 X 將重置只讀屬性。
/N 使用生成的短名稱進行復制。
/O 復制文件所有權和 ACL 信息。
/X 復制文件審核設置(表示 /O)。
/Y 取消提示以確認要覆蓋
現有目標文件。
/-Y 導致提示以確認要覆蓋
現有目標文件。
/Z 在可重啟模式下復制網路文件。
/B 復制符號鏈接本身與鏈接目標。
/J 使用未緩沖的 I/O 進行復制。建議用於非常大的文件。
/壓縮 文件傳輸期間請求網路壓縮(如果
適用)。
/稀疏 在復制稀疏文件時保留稀疏狀態。

可以在 COPYCMD 環境變數中預設開關 /Y。
這可能在命令行上被替代為 /-Y。

⑺ Perl-4 Windows批處理(cmd/bat)常用命令大全 2020-12-20

簡單詳細,建議收藏
常見問題:
1.如果你自己編寫的.bat文件,雙擊打開,出現閃退
2.批處理.bat 文件中輸出中文亂碼
解決方法在文章末尾!

前言
批處理文件(batch file)包含一系列 DOS命令,通常用於自動執行重復性任務。用戶只需雙擊批處理文件便可執行任務,而無需重復輸入相同指令。編寫批處理文件非常簡單,但難點在於確保一切按順序執行。編寫嚴謹的批處理文件可以極大程度地節省時間,在應對重復性工作時尤其有效
在Windows中善用批處理可以簡化很多重復工作

什麼是批處理?
批處理(Batch),也稱為批處理腳本。顧名思義,批處理就是對某對象進行批量的處理。批處理文件的擴展
名為bat

1 echo 和 @
回顯命令
@ #關閉單行回顯
echo off #從下一行開始關閉回顯
@echo off #從本行開始關閉回顯。一般批處理第一行都是這個
echo on #從下一行開始打開回顯
echo #顯示當前是 echo off 狀態還是 echo on 狀態
echo. #輸出一個」回車換行」,空白行
(同echo, echo; echo+ echo[ echo] echo/ echo)

2 errorlevel
echo %errorlevel%
每個命令運行結束,可以用這個命令行格式查看返回碼
默認值為0,一般命令執行出錯會設 errorlevel 為1

3 dir
顯示文件夾內容
dir #顯示當前目錄中的文件和子目錄
dir /a #顯示當前目錄中的文件和子目錄,包括隱藏文件和系統文件
dir c: /a:d #顯示 C 盤當前目錄中的目錄
dir c: /a:-d #顯示 C 盤根目錄中的文件
dir c: /b/p #/b只顯示文件名,/p分頁顯示
dir *.exe /s #顯示當前目錄和子目錄里所有的.exe文件

4 cd
切換目錄
cd #進入根目錄
cd #顯示當前目錄
cd /d d:sdk #可以同時更改盤符和目錄

5 md
創建目錄
md d:abc #如果 d:a 不存在,將會自動創建中級目錄
如果命令擴展名被停用,則需要鍵入 mkdir abc

6 rd
刪除目錄
rd abc #刪除當前目錄里的 abc 子目錄,要求為空目錄
rd /s/q d:temp #刪除 d:temp 文件夾及其子文件夾和文件,/q安靜模式
7 del
刪除文件
del d:test.txt #刪除指定文件,不能是隱藏、系統、只讀文件
del /q/a/f d:temp .
刪除 d:temp 文件夾裡面的所有文件,包括隱藏、只讀、系統文件,不包括子目錄
del /q/a/f/s d:temp .
刪除 d:temp 及子文件夾裡面的所有文件,包括隱藏、只讀、系統文件,不包括子目錄
8 ren
重命名命令
ren d:temp tmp #支持對文件夾的重命名

9 cls
清屏
10 type
顯示文件內容
type c:boot.ini #顯示指定文件的內容,程序文件一般會顯示亂碼
type *.txt #顯示當前目錄里所有.txt文件的內容

11
拷貝文件
c:test.txt d:test.bak
復制 c:test.txt 文件到 d: ,並重命名為 test.bak
con test.txt
從屏幕上等待輸入,按 Ctrl+Z 結束輸入,輸入內容存為test.txt文件
con代表屏幕,prn代表列印機,nul代表空設備
1.txt + 2.txt 3.txt
合並 1.txt 和 2.txt 的內容,保存為 3.txt 文件
如果不指定 3.txt ,則保存到 1.txt
test.txt +
復制文件到自己,實際上是修改了文件日期

12 title
設置cmd窗口的標題
title 新標題 #可以看到cmd窗口的標題欄變了

13 ver
顯示系統版本

14 label 和 vol
設置卷標
vol #顯示卷標
label #顯示卷標,同時提示輸入新卷標
label c:system #設置C盤的卷標為 system

15 pause
暫停命令

16 rem 和 ::
注釋命令
注釋行不執行操作

17 date 和 time
日期和時間
date #顯示當前日期,並提示輸入新日期,按"回車"略過輸入
date/t #只顯示當前日期,不提示輸入新日期
time #顯示當前時間,並提示輸入新時間,按"回車"略過輸入
time/t #只顯示當前時間,不提示輸入新時間

18 goto 和 :
跳轉命令
:label #行首為:表示該行是標簽行,標簽行不執行操作
goto label #跳轉到指定的標簽那一行

19 find (外部命令)
查找命令
find "abc" c:test.txt
在 c:test.txt 文件里查找含 abc 字元串的行
如果找不到,將設 errorlevel 返回碼為1
find /i 「abc」 c:test.txt
查找含 abc 的行,忽略大小寫
find /c "abc" c:test.txt
顯示含 abc 的行的行數

20 more (外部命令)
逐屏顯示
more c:test.txt #逐屏顯示 c:test.txt 的文件內容

21 tree
顯示目錄結構
tree d: #顯示D盤的文件目錄結構

22 &
順序執行多條命令,而不管命令是否執行成功

23 &&
順序執行多條命令,當碰到執行出錯的命令後將不執行後面的命令
find "ok" c:test.txt && echo 成功
如果找到了"ok"字樣,就顯示"成功",找不到就不顯示

24 ||
順序執行多條命令,當碰到執行正確的命令後將不執行後面的命令
find "ok" c:test.txt || echo 不成功
如果找不到"ok"字樣,就顯示"不成功",找到了就不顯示

25 |
管道命令
dir . /s/a | find /c ".exe"
管道命令表示先執行 dir 命令,對其輸出的結果執行後面的 find 命令
該命令行結果:輸出當前文件夾及所有子文件夾里的.exe文件的個數
type c:test.txt|more
這個和 more c:test.txt 的效果是一樣的

26 > 和 >>
輸出重定向命令

27 <
從文件中獲得輸入信息,而不是從屏幕上
一般用於 date time label 等需要等待輸入的命令
@echo off
echo 2005-05-01>temp.txt
date <temp.txt
del temp.txt
這樣就可以不等待輸入直接修改當前日期

28 %0 %1 %2 %3 %4 %5 %6 %7 %8 %9 % *
命令行傳遞給批處理的參數
%0 批處理文件本身
%1 第一個參數
%9 第九個參數
%* 從第一個參數開始的所有參數
批參數(%n)的替代已被增強。您可以使用以下語法:
%~1 - 刪除引號(" ), 擴充 %1
%~f1 - 將 %1 擴充到一個完全合格的路徑名
%~d1 - 僅將 %1 擴充到一個驅動器號
%~p1 - 僅將 %1 擴充到一個路徑
%~n1 - 僅將 %1 擴充到一個文件名
%~x1 - 僅將 %1 擴充到一個文件擴展名
%~s1 - 擴充的路徑指含有短名
%~a1 - 將 %1 擴充到文件屬性
%~t1 - 將 %1 擴充到文件的日期/時間
%~z1 - 將 %1 擴充到文件的大小
%~ PATH:1 - 在列在 PATH 環境變數中的目錄里查找 %1,
並擴展到找到的第一個文件的驅動器號和路徑。
%~ftza1 - 將 %1 擴展到類似 DIR 的輸出行。
可以參照 call/? 或 for/? 看出每個參數的含意
echo load "%%1" "%%2">c:test.txt
生成的文件內容為 load "%1" "%2"
批處理文件里,用這個格式把命令行參數輸出到文件

29 if
判斷命令
if "%1"=="/a" echo 第一個參數是/a
if /i "%1" equ "/a" echo 第一個參數是/a
/i 表示不區分大小寫,equ 和 == 是一樣的,其它運算符參見 if/?
if exist c: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
)
30 setlocal 和 endlocal
設置」命令擴展名」和」延緩環境變數擴充」
SETLOCAL ENABLEEXTENSIONS #啟用"命令擴展名"
SETLOCAL DISABLEEXTENSIONS #停用"命令擴展名"
SETLOCAL ENABLEDELAYEDEXPANSION #啟用"延緩環境變數擴充"
SETLOCAL DISABLEDELAYEDEXPANSION #停用"延緩環境變數擴充"
ENDLOCAL #恢復到使用SETLOCAL語句以前的狀態
「命令擴展名」默認為啟用
「延緩環境變數擴充」默認為停用
批處理結束系統會自動恢復默認值
可以修改注冊表以禁用"命令擴展名",詳見 cmd /? 。所以用到"命令擴展名"的程
序,建議在開頭和結尾加上 SETLOCAL ENABLEEXTENSIONS 和 ENDLOCAL 語句,以確
保程序能在其它系統上正確運行
"延緩環境變數擴充"主要用於 if 和 for 的符合語句,在 set 的說明裡有其實用常式

31 set
設置變數
引用變數可在變數名前後加 % ,即 %變數名%
set #顯示目前所有可用的變數,包括系統變數和自定義的變數
echo %SystemDrive% #顯示系統盤盤符。系統變數可以直接引用
set p #顯示所有以p開頭的變數,要是一個也沒有就設errorlevel=1
set p=aa1bb1aa2bb2 #設置變數p,並賦值為 = 後面的字元串,即aa1bb1aa2bb2
echo %p% #顯示變數p代表的字元串,即aa1bb1aa2bb2
echo %p:~6% #顯示變數p中第6個字元以後的所有字元,即aa2bb2
echo %p:~6,3% #顯示第6個字元以後的3個字元,即aa2
echo %p:~0,3% #顯示前3個字元,即aa1
echo %p:~-2% #顯示最後面的2個字元,即b2
echo %p:~0,-2% #顯示除了最後2個字元以外的其它字元,即aa1bb1aa2b
echo %p:aa=c% #用c替換變數p中所有的aa,即顯示c1bb1c2bb2
echo %p:aa=% #將變數p中的所有aa字元串置換為空,即顯示1bb12bb2
echo %p: bb=c% #第一個bb及其之前的所有字元被替換為c,即顯示c1aa2bb2
set p=%p:
bb=c% #設置變數p,賦值為 %p:*bb=c% ,即c1aa2bb2
set /a p=39 #設置p為數值型變數,值為39
set /a p=39/10 #支持運算符,有小數時用去尾法,39/10=3.9,去尾得3,p=3
set /a p=p/10 #用 /a 參數時,在 = 後面的變數可以不加%直接引用
set /a p=」1&0″ #」與」運算,要加引號。其它支持的運算符參見set/?
set p= #取消p變數
set /p p=請輸入
屏幕上顯示」請輸入」,並會將輸入的字元串賦值給變數p
注意這條可以用來取代 choice 命令
注意變數在 if 和 for 的復合語句里是一次性全部替換的,如
@echo off
set p=aaa
if %p%==aaa (
echo %p%
set p=bbb
echo %p%
)
結果將顯示
aaa
aaa
因為在讀取 if 語句時已經將所有 %p% 替換為aaa
這里的"替換",在 /? 幫助里就是指"擴充"、"環境變數擴充"
可以啟用」延緩環境變數擴充」,用 ! 來引用變數,即 !變數名!
@echo off
SETLOCAL ENABLEDELAYEDEXPANSION
set p=aaa
if %p%==aaa (
echo %p%
set p=bbb
echo !p!
)
ENDLOCAL
結果將顯示
aaa
bbb
還有幾個動態變數,運行 set 看不到
%CD% #代表當前目錄的字元串
%DATE% #當前日期
%TIME% #當前時間
%RANDOM% #隨機整數,介於0~32767
%ERRORLEVEL% #當前 ERRORLEVEL 值
%CMDEXTVERSION% #當前命令處理器擴展名版本號
%CMDCMDLINE% #調用命令處理器的原始命令行
可以用echo命令查看每個變數值,如 echo %time%
注意 %time% 精確到毫秒,在批處理需要延時處理時可以用到

32 start
批處理中調用外部程序的命令,否則等外部程序完成後才繼續執行剩下的指令

33 call
批處理中調用另外一個批處理的命令,否則剩下的批處理指令將不會被執行
有時有的應用程序用start調用出錯的,也可以call調用

34 choice (外部命令)
選擇命令
讓用戶輸入一個字元,從而選擇運行不同的命令,返回碼errorlevel為1234……
win98里是choice.com
win2000pro里沒有,可以從win98里拷過來
win2003里是choice.exe
choice /N /C y /T 5 /D y>nul
延時5秒

35 assoc 和 ftype
文件關聯
assoc 設置'文件擴展名'關聯,關聯到'文件類型'
ftype 設置'文件類型'關聯,關聯到'執行程序和參數'
當你雙擊一個.txt文件時,windows並不是根據.txt直接判斷用 notepad.exe 打開
而是先判斷.txt屬於 txtfile '文件類型'
再調用 txtfile 關聯的命令行 txtfile=%SystemRoot%system32NOTEPAD.EXE %1
可以在"文件夾選項"→"文件類型"里修改這2種關聯
assoc #顯示所有'文件擴展名'關聯
assoc .txt #顯示.txt代表的'文件類型',結果顯示 .txt=txtfile
assoc .doc #顯示.doc代表的'文件類型',結果顯示 .doc=Word.Document.8
assoc .exe #顯示.exe代表的'文件類型',結果顯示 .exe=exefile
ftype #顯示所有'文件類型'關聯
ftype exefile #顯示exefile類型關聯的命令行,結果顯示 exefile="%1" %*
assoc .txt=Word.Document.8
設置.txt為word類型的文檔,可以看到.txt文件的圖標都變了
assoc .txt=txtfile
恢復.txt的正確關聯
ftype exefile="%1" %*
恢復 exefile 的正確關聯
如果該關聯已經被破壞,可以運行 command.com ,再輸入這條命令

36 pushd 和 popd
切換當前目錄
@echo off
c: & cd & md mp3 #在 C: 建立 mp3 文件夾
md d:mp4 #在 D: 建立 mp4 文件夾
cd /d d:mp4 #更改當前目錄為 d:mp4
pushd c:mp3 #保存當前目錄,並切換當前目錄為 c:mp3
popd #恢復當前目錄為剛才保存的 d:mp4

37 for
循環命令
這個比較復雜,請對照 for/? 來看

38 subst (外部命令)
映射磁碟。
subst z: serverd #這樣輸入z:就可以訪問serverd了
subst z: /d #取消該映射
subst #顯示目前所有的映時

39 x (外部命令)
文件拷貝
x d:mp3 e:mp3 /s/e/i/y
復制 d:mp3 文件夾、所有子文件夾和文件到 e: ,覆蓋已有文件
加 /i 表示如果 e: 沒有 mp3 文件夾就自動新建一個,否則會有詢問

⑻ bat的常用命令

顯示信息,或將命令回顯打開或關上。
ECHO [ON | OFF]
ECHO [message]
要顯示當前回顯設置,鍵入不帶參數的 ECHO。
echo 命令的第一個用法,echo on和echo off
echo on表示打開回顯,echo off表示關閉回顯,何為回顯?打開回顯就是執行命令時會把命令顯示出來,關閉回顯反之.
echo 命令的第二個用法,echo message,這個很簡單,就是顯示後面的信息
echo 命令第三個用法,顯示當前回顯設置,就是顯示回顯打開或關閉
echo也可以輸出文件。下面再說。
以下的這段代碼可以讓你很好地理解echo的用法(包括如何用echo輸出空行)
echo 這是沒有關閉回顯
echo;
echo
echo off
echo 這是關閉了回顯
echo;
echo
pause 暫停批處理程序,並顯示以下消息:
請按任意鍵繼續. . .
這個命令沒有什麼好說的,要暫停時直接pause就行了,當然後面我們會用pause>nul 清除屏幕。
CLS
這個命令也沒有什麼好說的,清屏,自己試一次就知道了 在批處理文件或 CONFIG.SYS 里加上註解或說明。
REM [comment]
這個命令同樣沒什麼好說的,用法就是rem 注釋
PS:其實可以用::代替REM,可以提高執行速度,不過REM的兼容性更好,我還是建議大家用rem注釋 1.給變數賦值(撤銷)
例1:

@echo off
set str=My name is Xiao
echo %str%
rem 批處理中的變數一般需要用%來擴展,相見特殊符號一節
pause>nul
例2.
@echo off
set str=ABCDEFGHIJKLMN
echo %str%
set str=
echo;%str%
rem 還記得加;可以實現什麼效果嗎?一個空行,為什麼要這么做呢?想不出來的話去掉這個;試試
pause>nul
上面的例子中,一個是給變數賦值,一個是撤銷變數的值
2.等待用戶輸入數據(開關/P)
例:
@echo off
set /p name=請輸入你的姓名:
set /p age=請輸入你的年齡(純數字):
echo 所以,%name%今年%age%歲咯?
pause>nul
3.計算(開關/A)
例1:
@echo off
set /a num=(12*2)+(13*4)
echo (12x2)+(13x4)=%num%
pause>nul
例2:
@echo off
set /p num=請輸入一個數字(不要超過2147483647):
REM 批處理能處理的數字不能超過32位(二進制)
set /a num*=2
echo 這個數字的兩倍是%num%
pause>nul
附:Set /a num*=2與set /a num=num*2等價
() - 分組
! ~ - - 一元運算符
* / % - 算數運算符
+ - - 算數運算符
<< >> - 邏輯移位
- 按位「與」
^ - 按位「異」
| - 按位「或」
= *= /= %= += -= - 賦值
&= ^= |= <<= >>=
, - 表達式分隔符
set /a支持多行表達式並列,比如set /a num1=1+1,num2=1+2,num3=1+3
並且set /a不需要擴展變數,比如set /a num=%num2%+%num3%與set /a num=num2+num3等價
以上內容僅為基礎教程
4.顯示當前已定義變數
例:
@set
@pause>nul
是不是很簡單?其實它還有更高級的用法呢
@set a
@pause>nul
@set s
@pause>nul
你們發現什麼了嗎??它的用法就是這些,不用多說了 1.IF的第一種用法,比較字元串
例:
set /p PW=請輸入密碼:
if %PW%==bat (
echo YES!
) ELSE (
Rem [else] 為可選參數,表示否則,即如果變數PW等於bat則輸出YES!否則輸出NO!
echo NO!
)
pause>nul
通過set /p和if可以實現一個簡單的密碼判斷,當然這個密碼判斷可以很輕易地被破解,仔細動腦筋想一想,該怎麼破解呢.
不過這個密碼判斷尚有不足之處,假如我們什麼都不輸入直接回車,便會提示錯誤,那該怎麼辦呢?很簡單,只要加上雙引號(其它的符號也行)就行了=>if %PW%==bat
2.IF的第二種用法,比較數字
例:
set /p num1=請第一個輸入數字:
set /p num2=請第二個輸入數字:
if not %num1% LSS %num2% (
rem lss表示小於
rem [not]為可選參數,表示非,即如果變數num1不小於變數num2就輸出第一個數字大,否則輸出第二個數字大
echo 第一個數字大
) ELSE (
echo 第二個數字大
)
pause>nul
這段代碼可以實現一個簡單的判斷,不過尚有不足之處-----如果這兩個數字相等呢,這就要請出我們的else if啦(當然你也可以用幾個if來判斷)
set /p num1=請第一個輸入數字:
set /p num2=請第二個輸入數字:
if %num1% gtr %num2% (
echo 第一個數字大
) ELSE if %num1% EQU %num2% (
echo 一樣大
) ELSE (
echo 第二個數字大
)
pause>nul
------比較運算符-----
EQU - 等於
NEQ - 不等於
LSS - 小於
LEQ - 小於或等於
GTR - 大於
GEQ - 大於或等於
3.IF的第三種用法,檢測文件(夾)是否存在
例:
@echo off
if exist C:windows (
echo 你的C盤有windows文件(夾^)
) else (
echo 你的C盤沒有windows文件(夾^)
)
pause>nul
^為轉義符號,在特殊符號一節再作講解
4.IF的第四種用法,檢測變數是否被定義
例:
@echo off
set var=aiwozhonghua
if defined var (
echo 變數var已被定義,它的值為%var%
) else (
echo 變數var沒有被定義
)
pause>nul
去掉第一行的set看看執行結果有什麼不同,你明白它的用法了嗎?
5.IF的第五種用法,判斷返回值(ERRORLEVEL)
要判斷返回值,首先要理解返回值是個什麼概念,批處理中的返回值一般表示了上個命令的執行結果(成功/失敗/等)
每個命令執行完畢後返回值都會做相應的更改,一般返回值為0表示成功,1表示失敗,有一些第三方的返回值比較特殊(如Choice.exe,Tmos.exe,Cmos.exe),在這里就不講解了
例:
@echo off
echo;>>%systemroot% est.txt
if errorlevel 1 ( echo 寫入成功! ) else echo 寫入失敗
pause>nul
這段代碼嘗試向%systemroot%system32寫入數據,如果許可權不夠或殺毒軟體攔截就會寫入失敗,這時就會顯示寫入失敗.不知道%systemroot%表示了什麼?單獨鍵入set自己仔細看一下結果.
不過看到後面你會發現這段代碼還有更簡便的寫法
注:用 if errorlevel判斷返回值時要將返回值從大到小排列
例:
@echo off
choice /C:ABC /n A/B/C
if errorlevel 3 echo You choose the C
if errorlevel 2 echo You choose the B
if errorlevel 1 echo You choose the A
pause>nul 將 cmd.exe 導向到批處理程序中帶標簽的行。
GOTO label
label 指定批處理程序中用作標簽的文字字元串。

標簽必須單獨一行,並且以冒號打頭。
如果命令擴展名被啟用,GOTO 會如下改變:
GOTO 命令現在接受目標標簽 :EOF,這個標簽將控制轉移到當前
批腳本文件的結尾。不定義就退出批腳本文件,這是一個容易的
辦法。有關能使該功能有用的 CALL 命令的擴展名描述,請鍵入
CALL /?。
label是什麼?這可不是命令label,它指的是標簽,標簽是啥?見例子
例:
@echo off
set /p pw=請輸入密碼:
if %pw%==bathome goto yes
goto :eof
rem 未定義的:eof會退出腳本文件
:yes
echo 密碼正確!
pause>nul
這是一個更加完整的密碼判斷,仔細閱讀並執行這行代碼,現在你知道標簽是什麼了嗎,沒錯,那個:yes就是標簽了!
標簽的格式
:標簽名
關掉回顯以後你有沒有發現什麼?沒錯,標簽所在的那一行沒有被執行,這就是為什麼::比rem更快的原因了,但是標簽不能被使用在一個語句的內部,主要就是被括弧括起來的語句(是的,被括弧括起來的語句被看作一個整體),因此::的兼容性沒有rem那麼好
附:::其實就是不規范的標簽名... 1.FOR
對一組文件中的每一個文件執行某個特定命令。
FOR%variableIN (set) DO command [command-parameters]
%variable 指定一個單一字母可替換的參數。
(set) 指定一個或一組文件。可以使用通配符。
command 指定對每個文件執行的命令。
command-parameters
為特定命令指定參數或命令行開關。
例:
@echo off
for %%i in (*.txt) do echo %%i
pause>nul
這段代碼會顯示當前文件夾下所有的txt文件
@echo off
for %%i in (菜 芽 小 公 公) do echo %%i
pause>nul這段代碼會顯示





注:%%i為for輸出專用變數格式,其中i可以是a/A/0-z/Z/9和一些符號什麼的(如! # 不過不建議使用),在cmd中只能用一個%
2.FOR /L
FOR /L %variable IN (start,step,end) DO command [command-parameters]
該集表示以增量形式從開始到結束的一個數字序列。
因此,(1,1,5) 將產生序列 1 2 3 4 5,(5,-1,1) 將產生
序列 (5 4 3 2 1)。
例:
@echo off
for /L %%a in (1 2 1000) do echo %%apause>nul
這個用法很簡單,沒有什麼要講解的,從這段代碼主要是看出了逗號可以省略.當然還有一些稀奇古怪的用法為了防止新手弄混在這里就不講解了
3.FOR /R
FOR /R [[drive:]path] %variable IN (set) DO command [command-parameters]
檢查以 [drive:]path 為根的目錄樹,指向每個目錄中的
FOR 語句。如果在 /R 後沒有指定目錄,則使用當前
目錄。如果集僅為一個單點(.)字元,則枚舉該目錄樹。
這個命令同樣有一些看起來很奇怪的用法,為了防止新手迷糊就只講解基礎的
例:
@echo off
for /r C:Windwossystem32 %%i in (*) do echo %%i
pause>nul
這段代碼枚舉了C:Windwossystem32下所有的文件,包括子文件夾里的
4.FOR /D
FOR /D %variable IN (set) DO command [command-parameters]
如果集中包含通配符,則指定與目錄名匹配,而不與文件
名匹配。
這個命令的用法和上面差不多,只不過是枚舉目錄名,不詳解了
5.FOR /F
for /f是一個非(喪)常(心)復(病)雜(狂)的命令...
讓我們從它的第一個用法來講:
FOR /F [options] %variable IN (file-set) DO command [command-parame
例:
@echo off
echo 1,1 2,1 3,1 4,1>>test.txt
echo A1,2 2,2 3,2 4,2>>test.txt
echo 1,3 2,3 3,3 4,3>>test.txt
echo A1,4 2,4 3,4 4,4>>test.txt
rem 以上代碼在當前文件夾下生成了一個test.txt,打開看看?
For /F %%i In (test.txt) Do Echo %%i
pause>nul
For /F tokens=2 %%i In (test.txt) Do Echo %%i
pause>nul
For /F tokens=3 %%i In (test.txt) Do Echo %%i
pause>nul
For /F tokens=4 %%i In (test.txt) Do Echo %%i
pause>nul
我想執行完這個bat,再分析一下結果和代碼,聰明的你一定了解了tokens的用處
for /f 默認以空格為分隔符,將每一行分割為幾個元素,而tokens就表示取第幾個元素.但假如我們要取的不是一個元素呢?需要全部顯示出來怎麼辦?
tokens=* 表示取所有元素,用%%i輸出
tokens=1,2,3,4或tokens=1-4 然後用%%i或%%i,%%j,%%k,%%l 輸出
其實我們還有其他的方法,比如請出delims參數
例:
@echo off
rem test.txt已經有了,就不生成了
for /f delims=* %%i in (test.txt) do echo %%i
pause>nul
delims是個啥玩意兒?其實這就是分割符的設定,默認以空格為分隔符,你可以將分隔符設置成其他的,你的文本就不會被分割了,delims同樣支持多個分隔符,格式delims=第一個分隔符,第二個分隔符,第三個分隔符
啊哈,還有一個skip和eol,skip表示忽略前幾行,比如skip=10表示忽略這個文本的前十行,我這個文本只有4行,如果你加上skip=10的話就什麼都不會輸出了
eol表示忽略以某個符號開頭的行,比如eol=A,當某一行的開頭是A的時候,這一行就不會被處理,不過支持設置一個符號
for /f同也可以處理字元串
FOR /F [options] %variable IN (string) DO command [command-parameters]
字元串需要用雙引號引起來,其餘用法一樣,不過這里就要講到usebackq參數了,for /f是支持處理多個文件的,文件直接用空格隔開(某些符號也可以),假如文件名中含有空格怎麼辦呢?那好像只能用雙引號引起來了,但是用雙引號引起來會被識別成字元串的,這時就要請出usebackq參數了,加上這個參數,帶引號的字元串也會被識別為文件~
FOR /F [options] %variable IN ('command') DO command [command-parameters]
用for /f來處理命令執行的結果,命令要用單引號引起來
例:
@echo off
for /f skip=3 %%i in ('tasklist') do echo;%%i
pause>nul
這段代碼就處理了命令ipconfig的執行結果,單獨鍵入tasklist看會出現什麼?
================================================
~I - 刪除任何引號(),擴充 %I
%~fI - 將 %I 擴充到一個完全合格的路徑名
%~dI - 僅將 %I 擴充到一個驅動器號
%~pI - 僅將 %I 擴充到一個路徑
%~nI - 僅將 %I 擴充到一個文件名
%~xI - 僅將 %I 擴充到一個文件擴展名
%~sI - 擴充的路徑只含有短名
%~aI - 將 %I 擴充到文件的文件屬性
%~tI - 將 %I 擴充到文件的日期/時間
%~zI - 將 %I 擴充到文件的大小
%~$PATH:I - 查找列在路徑環境變數的目錄,並將 %I 擴充
到找到的第一個完全合格的名稱。如果環境變數名
未被定義,或者沒有找到文件,此組合鍵會擴充到
空字元串
組合修飾符來得到多重結果:
%~dpI - 僅將 %I 擴充到一個驅動器號和路徑
%~nxI - 僅將 %I 擴充到一個文件名和擴展名
%~fsI - 僅將 %I 擴充到一個帶有短名的完整路徑名
%~dp$PATH:i - 查找列在路徑環境變數的目錄,並將 %I 擴充
到找到的第一個驅動器號和路徑。
%~ftzaI - 將 %I 擴充到類似輸出線路的 DIR
===================================================
這些不多說了,自己用for /r命令輸出的時候把%%i改成%%~nxi之類的試一試就理解了 1. IF-EXIST
1)
首先用記事本在C:建立一個test1.bat批處理文件,文件內容如下:
@echo off
IF EXIST AUTOEXEC.BAT TYPE AUTOEXEC.BAT
IF NOT EXIST AUTOEXEC.BAT ECHO AUTOEXEC.BAT does not exist
然後運行它:
C:>TEST1.BAT
如果C:存在AUTOEXEC.BAT文件,那麼它的內容就會被顯示出來,如果不存在,批處理就會提示你該文件不存在。
2)
接著再建立一個test2.bat文件,內容如下:
@ECHO OFF
IF EXIST \%1 TYPE \%1
IF NOT EXIST \%1 ECHO \%1 does not exist
執行:
C:>TEST2 AUTOEXEC.BAT
該命令運行結果同上。
說明:
(1) IF EXIST 是用來測試文件是否存在的,格式為
IF EXIST [路徑+文件名] 命令
(2) test2.bat文件中的%1是參數,DOS允許傳遞9個批參數信息給批處理文件,分別為%1~%9(%0表示test2命令本身) ,這有點象編程中的實參和形參的關系,%1是形參,AUTOEXEC.BAT是實參。
3) 更進一步的,建立一個名為TEST3.BAT的文件,內容如下:
@echo off
IF %1 == A ECHO XIAO
IF %2 == B ECHO TIAN
IF %3 == C ECHO XIN
如果運行:
C:>TEST3 A B C
屏幕上會顯示:
XIAO
TIAN
XIN
如果運行:
C:>TEST3 A B
屏幕上會顯示
XIAO
TIAN
在這個命令執行過程中,DOS會將一個空字元串指定給參數%3。
2、IF-ERRORLEVEL
建立TEST4.BAT,內容如下:
@ECHO OFF
XCOPY C:AUTOEXEC.BAT D:IF ERRORLEVEL 1 ECHO 文件拷貝失敗
IF ERRORLEVEL 0 ECHO 成功拷貝文件
然後執行文件:
C:>TEST4
如果文件拷貝成功,屏幕就會顯示「成功拷貝文件」,否則就會顯示「文件拷貝失敗」。
IF ERRORLEVEL 是用來測試它的上一個DOS命令的返回值的,注意只是上一個命令的返回值,而且返回值必須依照從大到小次序順序判斷。因此下面的批處理文件是錯誤的:
@ECHO OFF
XCOPY C:AUTOEXEC.BAT D:
IF ERRORLEVEL 0 ECHO 成功拷貝文件
IF ERRORLEVEL 1 ECHO 未找到拷貝文件
IF ERRORLEVEL 2 ECHO 用戶通過ctrl-c中止拷貝操作
IF ERRORLEVEL 3 ECHO 預置錯誤阻止文件拷貝操作
IF ERRORLEVEL 4 ECHO 拷貝過程中寫盤錯誤
無論拷貝是否成功,後面的:
未找到拷貝文件
用戶通過ctrl-c中止拷貝操作
預置錯誤阻止文件拷貝操作
拷貝過程中寫盤錯誤
都將顯示出來。

⑼ BAT文件的所有命令和用法

bat文件的命令和DOS命令一樣的,本來就是DOS命令寫的。
所有的命令:
有關某個命令的詳細信息,請鍵入
HELP
命令名
ASSOC
顯示或修改文件擴展名關聯。
AT
計劃在計算機上運行的命令和程序。
ATTRIB
顯示或更改文件屬性。
BREAK
設置或清除擴展式
CTRL+C
檢查。
CACLS
顯示或修改文件的訪問控制列表(ACLs)。
CALL
從另一個批處理程序調用這一個。
CD
顯示當前目錄的名稱或將其更改。
CHCP
顯示或設置活動代碼頁數。
CHDIR
顯示當前目錄的名稱或將其更改。
CHKDSK
檢查磁碟並顯示狀態報告。
CHKNTFS
顯示或修改啟動時間磁碟檢查。
CLS
清除屏幕。
CMD
打開另一個
Windows
命令解釋程序窗口。
COLOR
設置默認控制台前景和背景顏色。
COMP
比較兩個或兩套文件的內容。
COMPACT
顯示或更改
NTFS
分區上文件的壓縮。
CONVERT

FAT
卷轉換成
NTFS。您不能轉換
當前驅動器。
COPY
將至少一個文件復制到另一個位置。
DATE
顯示或設置日期。
DEL
刪除至少一個文件。
DIR
顯示一個目錄中的文件和子目錄。
DISKCOMP
比較兩個軟盤的內容。
DISKCOPY
將一個軟盤的內容復制到另一個軟盤。
DOSKEY
編輯命令行、調用
Windows
命令並創建宏。
ECHO
顯示消息,或將命令回顯打開或關上。
ENDLOCAL
結束批文件中環境更改的本地化。
ERASE
刪除至少一個文件。
EXIT
退出
CMD.EXE
程序(命令解釋程序)。
FC
比較兩個或兩套文件,並顯示
不同處。
FIND
在文件中搜索文字字元串。
FINDSTR
在文件中搜索字元串。
FOR
為一套文件中的每個文件運行一個指定的命令。
FORMAT
格式化磁碟,以便跟
Windows
使用。
FTYPE
顯示或修改用於文件擴展名關聯的文件類型。
GOTO

Windows
命令解釋程序指向批處理程序
中某個標明的行。
GRAFTABL
啟用
Windows
來以圖像模式顯示
擴展字元集。
HELP
提供
Windows
命令的幫助信息。
IF
執行批處理程序中的條件性處理。
LABEL
創建、更改或刪除磁碟的卷標。
MD
創建目錄。
MKDIR
創建目錄。
MODE
配置系統設備。
MORE
一次顯示一個結果屏幕。
MOVE
將文件從一個目錄移到另一個目錄。
PATH
顯示或設置可執行文件的搜索路徑。
PAUSE
暫停批文件的處理並顯示消息。
POPD
還原
PUSHD
保存的當前目錄的上一個值。
PRINT
列印文本文件。
PROMPT
更改
Windows
命令提示符。
PUSHD
保存當前目錄,然後對其進行更改。
RD
刪除目錄。
RECOVER
從有問題的磁碟恢復可讀信息。
REM
記錄批文件或
CONFIG.SYS
中的注釋。
REN
重命名文件。
RENAME
重命名文件。
REPLACE
替換文件。
RMDIR
刪除目錄。
SET
顯示、設置或刪除
Windows
環境變數。
SETLOCAL
開始批文件中環境更改的本地化。
SHIFT
更換批文件中可替換參數的位置。
SORT
對輸入進行分類。
START
啟動另一個窗口來運行指定的程序或命令。
SUBST
將路徑跟一個驅動器號關聯。
TIME
顯示或設置系統時間。
TITLE
設置
CMD.EXE
會話的窗口標題。
TREE
以圖形模式顯示驅動器或路徑的目錄結構。
TYPE
顯示文本文件的內容。
VER
顯示
Windows
版本。
VERIFY
告訴
Windows
是否驗證文件是否已正確
寫入磁碟。
VOL
顯示磁碟卷標和序列號。
XCOPY
復制文件和目錄樹。
echo
顯示文本
這樣寫,每條
命令
空格
參數
回車換行寫下一條
最後保存成.bat文件

閱讀全文

與bat文件命令大全相關的資料

熱點內容
農行信用報告解壓密碼 瀏覽:216
小程序員調試信息 瀏覽:183
電腦打代碼自帶編譯嗎 瀏覽:273
和平怎麼在和平營地轉安卓 瀏覽:463
我的世界中如何查看伺服器的人數 瀏覽:618
台式機改為網路伺服器有什麼好處 瀏覽:960
騰訊雲輕量應用伺服器如何登陸 瀏覽:620
考研復試c語言編譯器 瀏覽:150
安卓的字體怎麼變粗 瀏覽:253
java錯誤無法載入主類 瀏覽:348
程序員考試考什麼文憑 瀏覽:883
pdf版破解 瀏覽:522
安卓系統如何重啟 瀏覽:174
小天才app鬧鍾怎麼改 瀏覽:962
司馬彥PDF 瀏覽:885
動力轉向編程 瀏覽:831
史瓦格期貨基本分析pdf 瀏覽:811
怎麼更改appid名字 瀏覽:235
抖音很解壓的東西 瀏覽:520
怎麼在app上進行機場升艙 瀏覽:133