Window批處理(.bat文件)

前言簡介

批處理文件(batch file)包含一系列 DOS命令,通常用于自動(dòng)執(zhí)行重復(fù)性任務(wù)。用戶只需雙擊批處理文件便可執(zhí)行任務(wù),而無需重復(fù)輸入相同指令。編寫批處理文件非常簡單,但難點(diǎn)在于確保一切按順序執(zhí)行。編寫嚴(yán)謹(jǐn)?shù)呐幚砦募梢詷O大程度地節(jié)省時(shí)間,在應(yīng)對(duì)重復(fù)性工作時(shí)尤其有效。在Windows中善用批處理可以簡化很多重復(fù)工作?

批處理(Batch),也稱為批處理腳本。顧名思義,批處理就是對(duì)某對(duì)象進(jìn)行批量的處理。批處理文件的擴(kuò)展名為bat。 DOS批處理則是基于DOS命令的,用來自動(dòng)地批量地執(zhí)行DOS命令以實(shí)現(xiàn)特定操作的腳本。?

批處理是一種簡化的腳本語言,它應(yīng)用于DOS和Windows系統(tǒng)中,它是由DOS或者Windows系統(tǒng)內(nèi)嵌的命令解釋器(通常是COMMAND.COM或者CMD.EXE)解釋運(yùn)行。類似于Unix中的Shell腳本。批處理文件具有.bat或者.cmd的擴(kuò)展名,其最簡單的例子,是逐行書寫在命令行中會(huì)用到的各種命令。更復(fù)雜的情況,需要使用if,for,goto等命令控制程序的運(yùn)行過程,如同C,Basic等中高級(jí)語言一樣。如果需要實(shí)現(xiàn)更復(fù)雜的應(yīng)用,利用外部程序是必要的,這包括系統(tǒng)本身提供的外部命令和第三方提供的工具或者軟件。?

批處理文件,或稱為批處理程序,是由一條條的DOS命令組成的普通文本文件,可以用記事本直接編輯或用DOS命令創(chuàng)建,也可以用DOS下的文本編輯器Edit.exe來編輯。在“命令提示”下鍵入批處理文件的名稱,或者雙擊該批處理文件,系統(tǒng)就會(huì)調(diào)用Cmd.exe運(yùn)行該批處理程序。一般情況下,每條命令占據(jù)一行;當(dāng)然也可以將多條命令用特定符號(hào)(如:&、&&、|、||等)分隔后寫入同一行中;還有的情況就是像if、for等較高級(jí)的命令則要占據(jù)幾行甚至幾十幾百行的空間。?

系統(tǒng)在解釋運(yùn)行批處理程序時(shí),首先掃描整個(gè)批處理程序,然后從第一行代碼開始向下逐句執(zhí)行所有的命令,直至程序結(jié)尾或遇見exit命令或出錯(cuò)意外退出。?

命令符號(hào)

批處理命令簡介

echo

rem

pause

call

start

goto

set

http://xstarcd.github.io/wiki/windows/windows_cmd_summary_commands.html?

批處理符號(hào)簡介?

回顯屏蔽 @?

重定向1 >與>>?

重定向2 <?

管道符號(hào) |?

轉(zhuǎn)義符 ^?

邏輯命令符包括:&、&&、||

http://xstarcd.github.io/wiki/windows/windows_cmd_summary_symbols.html?

文件夾管理

cd 顯示當(dāng)前目錄名或改變當(dāng)前目錄。?

md 創(chuàng)建目錄。?

rd 刪除一個(gè)目錄。?

dir 顯示目錄中的文件和子目錄列表。?

tree 以圖形顯示驅(qū)動(dòng)器或路徑的文件夾結(jié)構(gòu)。?

path 為可執(zhí)行文件顯示或設(shè)置一個(gè)搜索路徑。?

xcopy 復(fù)制文件和目錄樹。?

文件管理?

type 顯示文本文件的內(nèi)容。?

copy 將一份或多份文件復(fù)制到另一個(gè)位置。?

del 刪除一個(gè)或數(shù)個(gè)文件。?

move 移動(dòng)文件并重命名文件和目錄。(Windows XP Home Edition中沒有)?

ren 重命名文件。?

replace 替換文件。?

attrib 顯示或更改文件屬性。?

find 搜索字符串。?

fc 比較兩個(gè)文件或兩個(gè)文件集并顯示它們之間的不同?

網(wǎng)絡(luò)命令?

ping 進(jìn)行網(wǎng)絡(luò)連接測(cè)試、名稱解析?

ftp 文件傳輸?

net 網(wǎng)絡(luò)命令集及用戶管理?

telnet 遠(yuǎn)程登陸?

ipconfig顯示、修改TCP/IP設(shè)置?

msg 給用戶發(fā)送消息?

arp 顯示、修改局域網(wǎng)的IP地址-物理地址映射列表?

系統(tǒng)管理?

at 安排在特定日期和時(shí)間運(yùn)行命令和程序?

shutdown立即或定時(shí)關(guān)機(jī)或重啟?

tskill 結(jié)束進(jìn)程?

taskkill結(jié)束進(jìn)程(比tskill高級(jí),但WinXPHome版中無該命令)?

tasklist顯示進(jìn)程列表(Windows XP Home Edition中沒有)?

sc 系統(tǒng)服務(wù)設(shè)置與控制?

reg 注冊(cè)表控制臺(tái)工具?

powercfg控制系統(tǒng)上的電源設(shè)置

對(duì)于以上列出的所有命令,在cmd中輸入命令+/?即可查看該命令的幫助信息。如find /?

Windows Batch 常用命令

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/ echo)

2 errorlevel?

echo %errorlevel%?

每個(gè)命令運(yùn)行結(jié)束,可以用這個(gè)命令行格式查看返回碼?

默認(rèn)值為0,一般命令執(zhí)行出錯(cuò)會(huì)設(shè) errorlevel 為1

3 dir?

顯示文件夾內(nèi)容?

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分頁顯示?

dir *.exe /s #顯示當(dāng)前目錄和子目錄里所有的.exe文件

4 cd?

切換目錄?

cd #進(jìn)入根目錄?

cd #顯示當(dāng)前目錄?

cd /d d:sdk #可以同時(shí)更改盤符和目錄

5 md?

創(chuàng)建目錄?

md d:abc #如果 d:a 不存在,將會(huì)自動(dòng)創(chuàng)建中級(jí)目錄?

如果命令擴(kuò)展名被停用,則需要鍵入 mkdir abc。

6 rd?

刪除目錄?

rd abc #刪除當(dāng)前目錄里的 abc 子目錄,要求為空目錄?

rd /s/q d:temp #刪除 d:temp 文件夾及其子文件夾和文件,/q安靜模式

7 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)文件,不包括子目錄

8 ren?

重命名命令?

ren d:temp tmp #支持對(duì)文件夾的重命名

9 cls?

清屏

10 type?

顯示文件內(nèi)容?

type c:boot.ini #顯示指定文件的內(nèi)容,程序文件一般會(huì)顯示亂碼?

type *.txt #顯示當(dāng)前目錄里所有.txt文件的內(nèi)容

11 copy?

拷貝文件?

copy c:test.txt d:test.bak?

復(fù)制 c:test.txt 文件到 d: ,并重命名為 test.bak?

copy con test.txt?

從屏幕上等待輸入,按 Ctrl+Z 結(jié)束輸入,輸入內(nèi)容存為test.txt文件?

con代表屏幕,prn代表打印機(jī),nul代表空設(shè)備?

copy 1.txt + 2.txt 3.txt?

合并 1.txt 和 2.txt 的內(nèi)容,保存為 3.txt 文件?

如果不指定 3.txt ,則保存到 1.txt?

copy test.txt +?

復(fù)制文件到自己,實(shí)際上是修改了文件日期

12 title?

設(shè)置cmd窗口的標(biāo)題?

title 新標(biāo)題 #可以看到cmd窗口的標(biāo)題欄變了

13 ver?

顯示系統(tǒng)版本

14 label 和 vol?

設(shè)置卷標(biāo)?

vol #顯示卷標(biāo)?

label #顯示卷標(biāo),同時(shí)提示輸入新卷標(biāo)?

label c:system #設(shè)置C盤的卷標(biāo)為 system

15 pause?

暫停命令

16 rem 和 ::?

注釋命令?

注釋行不執(zhí)行操作

17 date 和 time?

日期和時(shí)間?

date #顯示當(dāng)前日期,并提示輸入新日期,按”回車”略過輸入?

date/t #只顯示當(dāng)前日期,不提示輸入新日期?

time #顯示當(dāng)前時(shí)間,并提示輸入新時(shí)間,按”回車”略過輸入?

time/t #只顯示當(dāng)前時(shí)間,不提示輸入新時(shí)間

18 goto 和 :?

跳轉(zhuǎn)命令?

:label #行首為:表示該行是標(biāo)簽行,標(biāo)簽行不執(zhí)行操作?

goto label #跳轉(zhuǎn)到指定的標(biāo)簽?zāi)且恍?/p>

19 find (外部命令)?

查找命令?

find “abc” c:test.txt?

在 c:test.txt 文件里查找含 abc 字符串的行?

如果找不到,將設(shè) errorlevel 返回碼為1?

find /i “abc” c:test.txt?

查找含 abc 的行,忽略大小寫?

find /c “abc” c:test.txt?

顯示含 abc 的行的行數(shù)

20 more (外部命令)?

逐屏顯示?

more c:test.txt #逐屏顯示 c:test.txt 的文件內(nèi)容

21 tree?

顯示目錄結(jié)構(gòu)?

tree d: #顯示D盤的文件目錄結(jié)構(gòu)

22 &?

順序執(zhí)行多條命令,而不管命令是否執(zhí)行成功

23 &&?

順序執(zhí)行多條命令,當(dāng)碰到執(zhí)行出錯(cuò)的命令后將不執(zhí)行后面的命令?

find “ok” c:test.txt && echo 成功?

如果找到了”ok”字樣,就顯示”成功”,找不到就不顯示

24 ||?

順序執(zhí)行多條命令,當(dāng)碰到執(zhí)行正確的命令后將不執(zhí)行后面的命令?

find “ok” c:test.txt || echo 不成功?

如果找不到”ok”字樣,就顯示”不成功”,找到了就不顯示

25 |?

管道命令?

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 c:test.txt 的效果是一樣的

26 > 和 >>?

輸出重定向命令

27 <?

從文件中獲得輸入信息,而不是從屏幕上?

一般用于 date time label 等需要等待輸入的命令?

@echo off?

echo 2005-05-01>temp.txt?

date

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容