【轉】Windows批處理學習(一)——MS-DOS命令

轉自:http://akudy.blog.51cto.com/2277883/1212360


前記

   自己是搞編程的,首先我是一個菜鳥,接觸計算機這麼久了,感覺很多計算機方面的技術和知識朦朦朧朧、模模糊糊,貌似有些貽笑大方了;所以最近騰出了點時間來了解計算機的基礎知識,準備整理整理這些知識,我想也爲時不晚。

   說來整理,其實並非一件易事,各人的視野都是有限的,當然“百事通”我是做不來的,還是實實在在的拿出來分享分享,貽笑貽笑大方,讓大家拍拍板磚也未嘗不可。

爲什麼要學習批處理?

   首先,我是一個後生,自從接觸計算機開始就一直使用的Windows操作系統,而且還是較爲古老的XP系統(相對Win7、Win8而言),可能是用的得心應手的,到現在還沒準備換。

   爲什麼要從批處理開始講起?首先內心是有一點的崇拜“黑客”,那NB的技術真讓人羨慕,當然我不會立志去成爲一名“黑客”,因爲這個職業是會被和諧的。那到底是爲什麼呢?因爲當Windows還在孃胎的時候,DOS(全稱爲Disk Operating System,被稱爲磁盤操作系統)是計算機操作系統的霸主,而批處理就是彙集DOS的寄住。

   計算機本身是弱智的,只能識別0和1兩個數字(0和1這兩個數字被我們尊稱爲二進制數碼),但是人類的智慧是無限的,通過對計算機大腦(CPU)的改造,可以讓它支持整個宇宙的所有信息。迴歸正題,我們在計算機上查看的任何文件都是以0和1組成的二進制碼存儲在計算機中的,具體怎麼存儲的我也是後生,所以我也不懂。最早出現的磁盤操作系統(DOS)就是實現對計算機硬盤上的文件的操作和管理。說了這麼多其實只想說明一點就是我很想知道DOS和批處理到底是怎麼對計算機硬盤上的文件進行操作的?

DOS和MS-DOS

   上面說了很多廢話,下面直接入題。

   DOS(Disk Operating System),磁盤操作系統,我想對計算機有點了解的人應該都不會陌生這個詞,但是具體它是幹什麼的呢?DOS是計算機上的一種基於磁盤管理的操作系統,可以直接操作和管理磁盤上的文件,在計算機出廠是基本都會自帶一個DOS磁盤操作系統。

   DOS發展到現在已經存在很多版本,以MS-DOS、PC-DOS和FreeDOS最爲常見。

   MS-DOS(Microsoft-Disk Operating System),是微軟的磁盤操作系統,是DOS的一個分支。MS-DOS的來歷可以查閱一下資料,最早的DOS稱爲86-DOS,最後由微軟創始人比爾?蓋茨以5美元(來自《硅谷傳奇》電影,有時間可以看一看,講述了喬幫主和蓋茨大叔的白手起家之路)收購版權並更名爲MS-DOS。

   初期的Windows操作系統實質是基於DOS系統的一種圖形應用程序,直到Windows2000後,才脫離DOS本質開始了自己的視窗操作系統。雖然脫離了DOS,直到Win7,Windows操作系統中一直保留了MS-DOS系統應用,可能是它曾經是霸主的原因。現在MS-DOS的最新版本是6.x,微軟已經宣佈停止對MS-DOS系統的更新,當然我們瞭解一下還是非常有必要的。像我這種不求新的人還在用着XP系統,情何以堪啊!所以我下面講到的都是基於Windows XP系統的,當然大部分Windows 7一樣可用。

MS-DOS常見命令

1.系統環境變量

   Windows中的磁盤操作系統稱爲MS-DOS,DOS在Windows中表現爲一個黑底白字的窗口,我們親切的稱之爲命令行。對Windows熟悉的人肯定都知道在“開始”菜單中有一個“運行”窗口,我們可以在其中輸出程序的名稱,然後就可以直接打開對應的程序了。所以我們可以在“運行”窗口中的“打開”文本框中輸入“cmd”即可以打開期待已久的命令行窗口。“cmd”其實是“command”(命令)的單詞縮寫。

   爲什麼我們在“運行”窗口輸入“cmd”就會打開命令行窗口呢?因爲Windows系統引入了一個稱爲“環境變量”的概念,分爲“系統環境變量”和“用戶環境變量”兩種類型。具體的可以通過“我的電腦”—>右鍵—>“屬性”—>“高級”—>“環境變量”來查看,同樣可以在運行窗口中輸入“sysdm.cpl”來打開“我的電腦”—>“屬性”選項。可以看到在“系統環境變量”中有一個變量名爲“Path”的變量,值中有一段爲“%SystemRoot%\system32;”,實際這段內容非常重要,以爲在  Windows XP系統安裝完成後自動配置的,實際它表示的是“C:\WINDOWS\system32”這個目錄。可以查看一下這個目錄,其實目錄中存在一個“cmd.exe”可執行文件;同理,“sysdm.cpl”同樣存在該目錄中。爲什麼“cmd”不需要“.exe”擴展名,而“sysdm.cpl”需要擴展名呢?因爲“系統環境變量”中還存在一個名爲“PATHEXT”的變量,值中有一段爲“.EXE;”所以到我們輸入“cmd”名稱後會自動追加“.exe”最爲後綴並“C:\WINDOWS\system32”中查找看是否存在“cmd.exe”文件,存在則打開。實際當我面在命令行或者“運行”窗口中輸入任何一個名稱後,Windows系統會自動的從“Path”指定的所有目錄中進行查找,如果查找到則就打開,否則就會自動加上“PATHEXT”中的任意一個值(順序依次循環追加擴展名並查找)再次進行查找,如果查找到就打開,否則提示錯誤。

   環境變量的知識,我就提到這裏,其實有很多內置的系統環境變量,這些變量的作用,你可以不用吝嗇網絡資源,自己去查找一番(“百度”不行去“谷歌”),相信比我講的透徹。

2.命令的使用

   當在“運行”窗口中輸入“cmd”之後鍵入“回車鍵”,即可啓動命令行窗口,可以看到它很是淳樸,單純的黑底白字,如圖:

雖然它很樸素,但是功能是不可小覷的。我們可以看到一個一個一閃一閃的白色下劃線,其實它就是我們稱之爲的“光標”。

   下面我們在命令行窗口中輸入“help”,然後鍵入回車,可以看出得到了一個命令說明列表,列出了所有的MS-DOS命令行以及命令行工具命令,列表如下:

命令名稱 對應程序(WINDOWS\system32\) 說明
assoc
顯示或修改文件擴展名關聯
at at.exe 顯示或修改計劃在計算機上運行的命令和程序
attrib attrib.exe 顯示或更改文件屬性
break
設置或清除擴展式CTRL+C檢查,XP中無效
cacls cacls.exe 顯示或修改文件的訪問控制列表(ACLs)
call
從另一個批處理程序調用這一個,可實現跨文件調用
cd 或 chdir
顯示當前目錄的名稱或將其更改
chcp chcp.com 顯示或設置活動代碼頁編號
chkdsk chkdsk.exe 檢查磁盤並顯示狀態報告
chkntfs chkntfs.exe 顯示或修改啓動時的磁盤檢查操作
cls
清除屏幕內容
cmd cmd.exe 打開另一個Windows命令解釋程序窗口
color
設置默認控制檯前景和背景顏色
command command.com 打開另一個Windows命令解釋程序窗口,實質是prompt的一種形式,所有路徑都爲短路徑方式
comp comp.exe 比較兩個或兩套文件的內容
compact compact.exe 顯示或更改NTFS分區上文件的壓縮
convert convert.exe 將FAT格式的卷轉換成NTFS格式。並且不能轉換當前使用的驅動器
copy
將至少一個文件複製到另一個位置
date
顯示或設置日期
del 或 erase
刪除至少一個文件
dir
顯示一個目錄中的文件和子目錄
diskcomp diskcomp.exe 比較兩個軟盤的內容
diskcopy diskcopy.exe 將一個軟盤的內容複製到另一個軟盤
doskey doskey.exe 編輯命令行、調用Windows命令並創建宏
echo
顯示消息,控制回顯的狀態(打開或關閉)
endlocal
結束批文件中環境更改的本地化,即停用延遲環境變量擴展功能
exit
退出cmd.exe程序(命令翻譯程序)或當前批處理腳本
fc fc.exe 比較兩個或兩套文件,並顯示不同處
find find.exe 在文件內容中搜索文字字符串
findstr findstr.exe 在文件內容中搜索字符串
for
爲一系列文件(一個集合)中的每個文件運行一個指定的命令
format format.com 格式化磁盤
ftype
顯示或修改用於文件擴展名關聯的文件類型
goto
將Windows命令解釋程序指向批處理程序中某個標明的行
graftabl graftabl.com 啓用Windows來以圖像模式顯示擴展字符集
help help.exe 啓用Windows來以圖像模式顯示擴展字符集
if
提供Windows命令的幫助信息
lable lable.exe 創建、更改或刪除磁盤的卷標
md 或 mkdir
創建目錄(文件夾)
mode mode.com 配置系統設備
more more.com 將結果進行分屏顯示,一次顯示一個屏幕內容
move
將文件從一個目錄移到另一個目錄
path
顯示或設置可執行文件的搜索路徑
pause
暫停批文件的處理並顯示消息
popd
還原pushd保存的當前目錄的上一個值
print print.exe 打印文本文件
prompt
更改Windows命令提示符
pushd
保存當前目錄,然後對其進行更改
rd 或 rmdir
刪除目錄
recover
從有問題的磁盤恢復可讀信息
rem
記錄批文件或CONFIG.SYS中的註釋,註釋標識符
ren 或 rename
重命名文件
replace replace.exe 替換文件
set
顯示、設置或刪除批處理可執行程序環境變量
setlocal
開始批文件中環境更改的本地化,即啓用延遲環境變量擴展功能
shift
更換批文件中可替換參數的位置
sort sort.exe 對輸入進行分類
start
啓動另一個窗口來運行指定的程序或命令
subst subst.exe 將路徑跟一個驅動器號關聯
time
顯示或設置系統時間
title
設置cmd.exe會話的窗口標題
tree tree.com 以圖形模式顯示驅動器或路徑的目錄結構
type
顯示文本文件的內容
ver
顯示Windows版本
verify
告訴Windows是否驗證文件是否已正確寫入磁盤
vol
顯示磁盤卷標和序列號
xcopy xcopy.exe 複製文件和目錄樹

   從列表中可以看成,有些命令是有對應的應用程序的,而且這些應用程序都是存在於“WINDOWS\system32”目錄中,所以這些命令我們稱之爲“外部命令”;而對應那些沒有對應應用程序的命令都是MS-DOS內部保留的命令,稱爲“內容命令”。

   瞭解編程的人都知道,單純的一個命令符只能做一件唯一的事情,所有MS-DOS對每一個命令都進行了擴展,這種擴展稱爲“命令選項”,大部分的命令選項都是可選的,使用“命令+選項”的方式可以實現多種複雜的不同的操作(值得注意的是命令選項和命令之間通常使用空格分割)。這裏介紹一個絕大多少命令都保留的一個默認命令選項“/?”,這個選項用於查看命令的使用說明文檔信息。例如:我們在命令行中輸入“cmd /?”就可以看到“CMD”命令的使用說明信息以及其所有選項描述信息。

3.命令的特點

   從上面的幾個簡單的例子,其實可以看成MS-DOS命令的幾個特點,下面來總結一下:

  • MS-DOS是磁盤操作系統,目的用於管理和操作磁盤上的文件。因此它是基於目錄的文件管理程序,也就是在操作之前必須要指定操作的目錄。

  • 命令行中命令、命令選項以及命令參數是不區分大小寫的。這是Windows系統的共性,Windows中的目錄和文件名都是不區分大小寫的。也就是說MS-DOS中的大多數情況下是不區分大小寫的,在某些特定情況下是需要區分的,這個以後你自會慢慢體會的。

  • 命令行的結束符號是換行符(包括Enter鍵等),有的時候空白符(包括Tab鍵、Space鍵等)也可以作爲結束符。也即是說一個換行符表示一條命令語句。

  • 命令和選項以及參數之間的分隔符是空白符(包括Tab鍵、Space鍵等),某些特定情況下空白符可以省略。

  • MS-DOS是單任務系統,只有執行完一項操作後才能執行下一項操作。當我們執行完某一項操作後會回到系統起始狀態。

  • 命令行的執行快捷鍵是“Enter鍵”,強制終止的快捷鍵是“CTRL+C”鍵。

4.MS-DOS常用命令介紹

   上面已經提到可以使用“命令 /?”的方式來查看任意一種命令的使用說明信息以及所有選項描述信息,通過這種方式我們可以學習以上列表中的任意一種命令的使用方式。只要肯嘗試就沒有不懂的。下面只介紹幾種常用的命令使用方式。

4.1.盤符切換

   盤符,官方應該稱爲卷標,就是我們說的“C盤”、“D盤”中的字母“C”和“D”,一般情況下盤符都是以26個英文字母大寫方式加上冒號的方式呈現的,例如C:表示C盤,D:表示D盤,用於標記某一個磁盤分區。通常情況下我們的Windows系統都是安裝在C盤的,因此啓動命令行默認的操作目錄是“C:\Documents and Settings\當前用戶”。那麼問題就來了,我們如何切換到其他的磁盤分區下進行操作呢?MS-DOS中提供了一種非常簡單的操作方式,就是直接輸入盤符,即:

卷標名稱:

可以直接輸入“盤符:”即可切換到該盤的根目錄中,當卷標無法找到則會提示錯誤並返回到上一次操作的目錄位置。

注意:這種方式不能從當前盤符中的目錄切換到當前盤的根目錄,只能切換到其他盤的根目錄。

4.2.目錄(文件夾)管理
  • CD/CHDIR——目錄切換和顯示

   “CD”或“CHDIR”是短語“change directory”的縮寫,意思是改變目錄。主要用於改變當前目錄或顯示當前目錄完全路徑名。用法如下:

CD|CHDIR [/D] [目標目錄]

“[]”表示可選,相信只要學過編程應該都知道。實質該命令有兩種用法,一種是顯示當前工作所基於的目錄完全路徑名;還一種就是改變工作目錄到另一個地方。

   講到路徑,這裏可以大膽的擴展一下,所謂“路徑”通過計算機中資源的一種定位標識途徑,主要目的就是用於資源的唯一性定位。在通常情況下“路徑”分爲“絕對路徑”和“相對路徑”兩種形式:

絕對路徑——從命名上可知它的位置是固定的,它是通過一種磁盤文件標識符來進行定位的,描述的是“某個磁盤下的某個位置”的意思,通常包含盤符。

相對路徑——從命名上可知它的位置是相對的,必須存在參照物,然後才能表示相對這個參照物而言資源的位置,描述的是“相對當前位置的某個位置”的意思,通常不包含盤符,但是包含“..”、“.”、“\”等操作符,“..”表示上一級目錄,“.”表示當前目錄,“\”表示當前盤符的根目錄。

   Windows系統中使用“\”作爲目錄級別分割符號(當然也可以使用“/”,但是Windows不推薦使用“/”);使用“..”可以表示上一級目錄,使用“.”可以表示當前目錄,使用“\”表示當前盤符的根目錄。在MS-DOS中大多數使用的都是絕對路徑,但是使用相對路徑更加靈活多變。接下來我們再來講“CD”命令的用法。

   上面我們遇到了一個問題,就是如何從當前盤符的某一個目錄切換到當前盤符的根目錄,直接使用盤符切換顯然是不行的。所以這裏我們可以使用“CD \”的方式切換到當前盤符的根目錄;同時我們可以使用“CD ..”切換目錄到當前目錄的上一級目錄。其實就是目標路徑是多變的,目標路徑可以是相對路徑,同樣可以是絕對路徑;默認情況下當目標路徑爲絕對路徑的時候不能跨磁盤分區進行切換,所以“CD”命令提供了“/D”選項用來解決這個問題,例如我們在默認的MS-DOS路徑下輸入“CD /D D:\test”可以直接進入D:\test目錄,當缺少“/D”選項時就不可以了,所以“CD /D”方式也可以替代盤符切換方式進行盤符的切換。

  • MD/MKDIR——目錄創建

   “MD”或“MKDIR”是短語“make directory”的縮寫,意思是構建目錄,主要用於創建新的指定目標目錄路徑名稱的目錄。用法如下:

MD|MKDIR 目標目錄路徑

該命令用於創建目錄,其必須指定要創建目錄的完全路徑名。該命令可以跨磁盤分區進行目錄創建,同時還可以創建一個目錄樹結構,即同時創建多個不存在的嵌套目錄結構或目錄組。

   目標目錄路徑可以使用絕對路徑,也可以使用相對路徑,需要注意的時,目錄不能與存在的目錄名相同,否則會提示錯誤。注意:當創建的目錄名稱中存在空白符時需要使用英文狀態下的引號("")將目錄名稱引起來;否則將創建目錄組,每一個目錄名以空白符分割開。

  • RD/RMDIR——刪除目錄

   “RD”或“RMDIR”是短語“remove directory”的縮寫,意思是移除目錄。主要用於刪除指定的目錄結構。用法如下:

RD|RMDIR [/Q] [/S] 目標目錄路徑

該命令主要用於空的目錄,可以跨磁盤分區進行操作,同時還可以使用增強選項刪除非空的目錄結構。只需要指定目標目錄路徑即可,該路徑可以是絕對路徑也可以是相對路徑。

   默認情況下,“RD”命令只能刪除空的目錄,也就是目錄中不能存在其他目錄或文件,否則會提示錯誤,正出於這個原因,所以“RD”命令提供了“/S”選項,用於強制刪除非空目錄,當使用“/S”進行非空目錄的強制刪除時會提是確認刪除信息,當然可以使用“/Q”選項強制取消提示信息。

   使用“RD”進行目錄的刪除一般不推薦使用,因爲就我目前所知,使用DOS刪除的文件或目錄不會保留在“回收站”中,所以不要輕易的刪除重要文件,否則刪除後就不會那麼輕易的找回來了。

  • DIR——目錄內容展示

   “DIR”是短語“directory”的縮寫,表示目錄。主要用於目錄內容查看和展示。用法如下:

DIR [目標目錄路徑] [選項]

該命令主要用於目錄結構信息的查看,可以查看目錄中的子目錄和文件屬性信息。不指定“目標目錄路徑”的“DIR”命令用於展示當前目錄結構,當指定“目標目錄”時則展示目標目錄的目錄結構,格式爲日期、時間、類型、大小、名稱。該目錄支持跨磁盤分區操作。

   “DIR”提供的磁盤選項比較豐富,可以通過“dir /?”或“help dir”來查看所有的選項以及其說明信息。這裏提一下,“/L”選項可以將子目錄或文件名稱轉換爲小寫格式;“/S”選項可以展示每一個子目錄的目錄結構;“/X”可以將展示的結果強制轉換爲短名稱的模式。

  • TREE——目錄樹展示

   “TREE”命令和“DIR”命令用法差不多,同樣用於展示指定目錄的內容結構,它的特點是使用一個“樹形”結構展示目錄所有子目錄和文件以及子目錄中的所有子目錄和文件;而“DIR”則是以列表的方式展示目錄結構。用法如下:

TREE [目標目錄路徑] [/F] [/A]

  • 該命令主要是以“樹形”結構的方式展示目錄結構。不指定“目標目錄路徑”的“TREE”命令用於展示當前目錄結構,當指定“目錄目錄”時則展示目標目錄的目錄結構。該命令不支持跨磁盤分區操作。

   該命令包括兩個選項,其中“/F”選項用於展示出所有的文件信息,默認只是展示目錄結構,不包括文件列表;“/A”用於標識強制使用ASCII字符進行結構圖案的構建。

4.3.文件管理
  • TYPE——文件內容查看

   “TYPE”命令並不是表示文件類型,而是用於查看文件內容的命令。這裏需要注意的是“TYPE”命令可以查看所有文件的內容並將其打印在命令行窗口,但是大多數的文件都是經過編譯以及其他方式處理過的,所以這些文件的內容則算一系列亂碼,因此是無意義的查看,所以我們通常使用“TYPE”命令查看文本文件的內容,使用方式如下:

TYPE 目標文件路徑 [|MORE]

該命令主要用於文本內容的信息查看,所以“目標文件路徑”必須指定,路徑既可以是相對路徑,也可以是絕對路徑,同時該命令支持跨磁盤分區操作。

   使用“TYPE”命令只能查看一個特定的文件內容,如果文件內容過多,則可以使用“|more”選項來實現分頁顯示的效果。其實“MORE”是一個命令,“|”是一個特殊的符號。

  • COPY——文件複製/文件合併

   “COPY”命令主要用於文件的複製,可以將一個或多個文件複製到另一個位置,使用方式如下:

COPY [選項] 源文件路徑 [/A或/B] [+...] [目標文件路徑 [/A或/B]]

該命令主要用於實現文件副本的創建,支持跨磁盤分區操作。

   這裏我們來看看“/A”和“/B”的區別,它們是緊跟在文件後的選項,其中“/A”用於表明文件爲ASCII文本文件;而“/B”用於表明文件爲二進制文本文件;但大多數我們不實用則兩個選項進行表明。

   “COPY”命令的選項比較豐富,可以通過“copy/?”或“help copy”來查看所有的選項以及其說明信息。默認情況下,可以直接指定“目標路徑”爲一個目錄,而且這個目錄必須存在,否則會提示錯誤(可以使用“/D”強制創建目標目錄),則命令會將源文件複製到目標目錄中,這個過程叫做“同名拷貝”;當然也可以指定“目標路徑”爲一個文件,這種方式是將源文件內容讀取並寫入到目標文件中,這個過程叫做“異名拷貝”。

   下面來看看如何實現文件的合併,實質這個過程叫做“合併拷貝”。當目標路徑爲一個目錄時,可以使用“+”來連接多個源文件,則命令會將多個文件的內容進行合併後寫入到目標文件中(目標文件名爲最後一個讀取的文件名),例如“copy C:\test\1.txt+2.txt D:\test”這個命令則會將1.txt和2.txt的內容進行合併後在D:\test目錄中構建一個名爲2.txt的文件;當目標路徑爲一個文件時,則會將多個文件的內容合併後並寫入到目標文件中。

  • XCOPY——文件或目錄樹複製

   “XCOPY”命令主要用於目錄樹的複製操作,同時支持對文件的複製操作,可以將一個或多個文件或目錄複製到另一個指定的位置。用法如下:

XCOPY 源路徑 [目標路徑] [選項]

該命令主要用於目錄樹結構的複製操作,其次可以擴展爲文件的複製操作,其中“源路徑”必須要指定,如果沒有指定“目標路徑”則默認目標路徑爲當前工作目錄。支持跨磁盤操作。

   “XCOPY”命令的選項比較豐富,可以通過“xcopy/?”或“help xcopy”來查看所有的選項以及其說明信息。默認情況下,如果不實用任何選項,則在完成複製之前會提示選擇“目標路徑的類型,F表示文件,D表示目錄”;如果選擇目錄,則會將源路徑目錄和目錄下的非系統、非隱藏文件複製到指定的目錄路徑下;如果選擇的是文件,則會將目錄下的每一個文件內容依次複製到目標路徑中,後者會覆蓋前者,而且在複製每一個文件時都會提示是否重寫目標路徑文件。當然可以使用“/I”選項將目標路徑強制作爲目錄進行處理從而取消目標路徑類型的確定提示。

   默認情況下“XCOPY”命令只能複製一層目錄和其文件,同時提供“/S”選項則可以將非空的目錄和其下的非系統、非隱藏文件(包括子目錄層)複製到指定的目標路徑中;使用“/E”選項可以將所有的目錄和非系統、非隱藏文件複製到目標路徑中;使用“/T”選項則可以值對非空的目錄和子目錄結構進行復制(不包含文件的複製);使用“/H”選項則可以強制將系統文件和隱藏文件複製到目標路徑中;當然它們也可以進行組合使用,達到不同的效果。

   “/F”選項可以輸出完整的元老級和目標路徑中的複製映射關係;使用“/L”選項可以輸出源路徑中需要複製的文件列表等。

  • DEL/ERASE——刪除文件

   “DEL”是短語“delete”的縮寫,意思是刪除;還一種刪除文件的命令是“ERASE”,意思是擦除,二者使用方式一樣。在這裏主要指刪除文件,該命令可以刪除一個或多個文件,是直接從磁盤上擦除文件的數據,所以刪除的文件並不會出現在“回收站”中,因此要謹慎使用。用法如下:

MOVE [/Y或/-Y] 源路徑 目標路徑

該命令用於從磁盤上擦除一個或多個文件數據,其中“目標路徑”必須指定,可以是絕對路徑,也可以是相對路徑。支持跨磁盤操作。

   “DEL”命令的選項比較豐富,可以通過“del/?”或“help del”來查看所有的選項以及選項說明信息。其中“/P”選項可以開啓刪除文件前的確認提示信息,默認是不開啓的;“/F”選項可以強制刪除只讀文件,也就是說默認情況下,不支持只讀文件的刪除;“/S”選項可以將“目標路徑”指定爲一個目錄,那麼將依次刪除該目錄中的文件並同時刪除該目錄的子目錄以及子目錄的子目錄中的文件。

  • MOVE——移動文件或目錄/重命名文件或目錄

   “MOVE”意思是移動,該命令主要用於移動目錄,相當於Windows中的“剪切”操作,可以將一個或多個文件移動到指定的路徑中;同時可以衍生對目錄或文件的重命名操作,即將一個目錄或文件移動的不同名的目標路徑中。用法如下:

DEL|ERASE [選項] 目標路徑

該命令有兩個用法,其一就是移動文件,其二就是重命名目錄或文件。其中源路徑和目標路徑必須指定,該命令有兩個選項,“/Y”選項用於取消移動時的確認提示信息,“/-Y”選項用於顯示確認提示信息。

   當移動文件操作時,即源路徑是一個文件,目標路徑可以爲一個目錄路徑,那麼會將源路徑中的文件移動到目標路徑的目錄中(文件名保留);如果目標路徑爲一個文件路徑,那麼會將源路徑中的文件內容讀取並寫入到目標文件中,這樣可以實現文件的重命名操作;當源文件存在多個時(使用英文狀態的“,”分割),則命令會將多個文件移動到同一個目標路徑中,或者將多個文件的內容讀取並拼接後寫入到一個目標文件中。

   當源路徑是一個目錄時,可以將源目錄移動到指定的目標路徑中,如果目標路徑與源路徑在同一個相對路徑中,則可以進行目錄的重命名操作。注意:“MOVE”命令可以實現文件或目錄的移動(或重命名),但是隻能支持文件的跨磁盤分區移動,不支持目錄的跨磁盤分區移動。

  • REN/RENAME——重命名文件或目錄

   “REN”或“RENAME”意思是重命名,可以對一個指定的文件或目錄進行名稱的修改。用法如下:

REN|RENAME 源路徑 新名稱

該命令用於修改文件或目錄的名稱,其中源路徑和新名稱必須同時指定,需要注意的是“新名稱”不能包含新的路徑,它的路徑沿用“源路徑”中的路徑地址;該命令支持跨磁盤分區操作。

  • FC——文件比較

   “FC”是短語“file compare”的縮寫,意思是文件比較。該命令用於進行兩個文件的內容信息比較,畢竟是命令行,所以“FC”進行的文本文件內容的比較是比較弱智的,不推薦使用,當然如果在沒有其他文件比較工具的時候可以勉強使用一下。用法如下:

FC [選項] 文件路徑1 文件路徑2

該命令用於文件內容的比較,然後顯示出內容的不同之處,支持跨磁盤分區文件的比較。同時提供多個選項,可以使用“fc/?”或“help fc”來查看選項的使用說明。

  • FIND——文件內容搜索

   “FIND”,意思是查找,該命令主要用於在指定文件的內容中搜索指定的字符串,並顯示相應的結果。相當於對內容的查找操作。用法如下:

FIND [選項] "字符串" [文件路徑]

該命令用於字符串的搜索操作,其中要搜索的字符串必須使用英文狀態的“""”引起來,而且該字符串是必須參數;文件路徑不是必須的,但是大多時都是從存在的文件中進行內容字符串的查找,如果文件路徑不存在則將在接下來輸入的內容中進行查找(按CTRL+C組合鍵可以終止查找)。該命令支持跨磁盤分區操作。

   默認情況下,在內容中查找到指定的字符串後會打印輸出存在該字符串的一整行內容。當然還提供了豐富的選項控制,可以使用“find/?”或“help find”來查看所有的選項說明,其中“/V”選項可以顯示輸出不包含查找字符串的行內容;“/C”選項可以輸出包含查找字符串的行數;“/N”選項可以顯示包含字符串的行號和行內容;“/L”選項可以指定搜索過程中嚴格區分字符串的大小寫,默認是忽略大小寫的。當然這些選項都可以組合使用,可以達到不同的效果。

  • FINDSTR——文件內容搜索

   “FINDSTR”意思是查找字符串,該命令與“FIND”命令的作用大致相同,都是用於字符串的查找工作;當然“FINDSTR”命令比“FIND”命令功能更爲複雜多變,同時它支持對一個目錄中所有文件的搜索功能。用法如下:

FINDSTR [選項] 字符串 [文件路徑]

該命令同“FIND”命令一樣,用於在文件內容中進行字符串的搜索查找,然後打印輸出對應的結果。其中要查找的字符串可以使用英文狀態的“""”引起來,也可以不實用,但是字符串必須指定;文件路徑同“FIND”命令一樣可以不指定,當不指定時表示在接下來輸入的內容中進行查找。該命令支持跨磁盤分區操作。

   使用“FINDSTR”命令可以實現多個字符串的查找,多個字符串需要使用空格符號隔開,同時必須將字符串使用“""”引起來,否則則解釋爲命令選項。同時“FINDSTR”還支持表達式的擴展查找,支持字符串範圍的查找等等,可以使用“findstr/?”或“help findstr”來查看具體的使用說明。

   與“FIND”命令一樣,默認情況下,在內容中查找到指定的字符串後會打印輸出存在該字符串的一整行內容。當然還提供了豐富的選項控制,可以使用“findstr/?”或“help findstr”來查看所有的選項說明,其中“/I”選項可以指定搜索過程忽略大小寫,默認是嚴格區分大小寫的;“/X”選項可以篩選出完全匹配的行內容並顯示輸出。用法比較靈活,可以嘗試選項組合使用,從而達到不同的效果。

4.4.MS-DOS系統管理
  • PATH——執行路徑管理

   “PATH”命令是比較關鍵的一個命令,但是在使用時用的並不是很多。該命令主要用於設置MS-DOS系統環境變量中的“PATH”常量值,也就是MS-DOS執行環境變量中的“PATH”變量。用法如下:

PATH [目標目錄路徑][;...][;%PATH%]

“PATH”在MS-DOS系統中指可執行路徑,使用該路徑指定後,以下在引用某一個(非路徑的)資源的時候就可以優選從“PATH”變量指定的可執行目錄中進行資源的搜索和查找,這一點比較靈活。

   沒有指定“目標目錄”的“PATH”命令用於查看當前系統註冊表中的“Path”環境變量;當指定“目標目錄”時則將“PATH”當前MS-DOS環境中的“PATH”環境變量修改爲指定的目錄,當然可以包含多個目錄,使用“;”分割;如果要在原有的“PATH”環境變量中追加目錄可以使用“%PATH%”進行原有環境變量的引用(這種用法其實是一種變量的引用方式)。

  • DATE——日期管理

   “DATE”意思是日期,該命令用於管理系統日期信息。輸入沒有參數的“DATE”命令可以顯示當前日期,並提示修改新的日期。使用“/T”選項可以取消修改步驟,只輸出當前日期;使用帶日期值作爲參數的“DATE”命令用於修改當前日期爲指定的日期。

  • TIME——時間管理

   “TIME”意思是時間,該命令與“DATE”一樣,主要用於管理系統時間的信息。輸入沒有參數的“TIME”命令可以顯示當前時間並提示修改新的時間。使用“/T”選項可以取消修改步驟,值輸出當前時間;使用帶時間值作爲參數的“TIME”命令可以修改當前時間爲指定的時間。

  • CLS——清屏

   “CLS”命令用於清除當前屏幕內容。當屏幕內容較多是可以使用“CLS”命令清除當前屏幕中的所有內容,並將工作路徑返回到執行命令前的工作路徑。

  • EXIT——退出

   “EXIT”意思是退出,該命令用於退出當前命令行程序,需要注意的是隻能結束當前一個命令行程序,而不是所有。結束後將關閉命令行窗口。高級應用可以使用“exit/?”和“help eixt”來查看。

  • HELP——幫助查看

   “HELP”意思是幫助,上面都提到過,主要用於輸出命令行幫助信息,它有兩種用法:其一就是打印所有的MS-DOS命令行命令說明信息列表,其二就是查看單個命令的使用說明文檔。使用方式爲:

HELP [命令]

該命令用於幫助說明文檔的查看,大多數情況下MS-DOS命令提供“/?”選項來實現同樣的效果。

4.5.磁盤管理
  • format——磁盤格式化

   “format”是Windows提供的一個磁盤格式化工具,所謂的“格式化”就是擦除磁盤的所有數據。“WINDOWS\system32\format.com”工具是一個命令行工具,使用該工具必須要指定磁盤分區卷標(也成爲驅動器名稱),格式化是一個危險的操作,一般不要輕易使用。

   “format”命令也提供了豐富的選項操作,可以使用“format/?”或“help format”查看,可以將一個磁盤分區格式化同時修改其文件系統格式、修改其卷標名稱等。較爲常用的一種方式就是快速格式化“format 盤符 /Q”,這種方式可以快速的實現格式化操作,同時保留原有文件系統格式。

  • convert——磁盤格式轉換

   “convert”是Windows提供的一個磁盤文件系統格式轉換工具,所謂的“文件系統”就是指FAT、FAT32、NTFS等磁盤分區格式,這裏不做多的解釋,可以去查查相關資料。“WINDOWS\system32\convert.exe”工具是一個命令行工具,使用該工具必須要指定磁盤分區卷標(即要轉換的盤符),同時必須指定“/FS:NTFS”選項,也就是說該工具只能將其他格式的磁盤轉換爲NTFS格式的磁盤。

   “convert”命令也提供了豐富的選項操作,可以使用“convert/?”或“help convert”查看,這種轉換是不會擦除磁盤原有數據的,只是重構它的文件系統而已。最常用的方式爲“convert 盤符 /FS:NTFS”,即將指定的盤轉換爲NTFS格式,注意當前工作分區不能進行轉換。

  • chkntfs——啓動時磁盤檢查設置(自檢設置)

   “chkntfs”是Windows提供的一個磁盤檢查設置工具,所謂的“磁盤檢查”就是我們稱之爲的“自檢”,還在爲由於非正常關機而導致系統在下一次啓動是出現藍屏自檢而煩惱嗎?哈哈...使用“chkntfs”工具可以幫你取消磁盤的自檢過程。使用該命令必須要指定要操作的磁盤分區卷(即盤符),經過實際驗證該工具只能對“NTFS”格式的磁盤進行有效的設置。

   “chkntfs”命令也提供了豐富的選項操作,可以使用“chkntfs/?”或“help chkntfs”查看,可能這個命令對我們有用的就是用於取消磁盤的自檢過程。取消的命令如下:

1
2
chkntfs /t:0
chkntfs /x D:

以上命令首先設置了開始自檢的計數時間設置爲0,然後強制取消對D盤的啓動自檢操作,從而達到取消D盤自檢過程的目的。如果要取消其他分區的自檢操作,值需要將“D:”修改爲對應的卷標即可。

4.6.其他常用外部命令
  • ping——TCP/IP遠程連接測試

   “PING”命令,做過編程的應該都知道這個命令,至於TCP/IP實在是高深莫測,這裏不做多的介紹,可以去查一下相關資料,初學者知道它是支持上網的東西就行了。“ping”命令主要是用於測試對遠程主機的網絡連接狀況,通過這個狀況我們可以知道與目標主機的網絡是否通暢。用法如下:

PING [選項] 目標主機地址

該命令用於測試與目標主機的網絡連接,所以目標主機的地址一定以指定,通常我們使用IP來表示網絡中的一臺計算機,所以目標主機地址可以是主機IP地址,還可以是目標主機的域名地址。

   通常我們如果不能上網都會有高手告訴你,“看看是否能夠ping通”,意思就是說通過TCP/IP提供的“ping”命令來檢查網絡是否通暢。當我們看到“Request timed out.”(意思就是“請求超時”)的結果時,表示無法與目標主機進行網絡連接;當看到“Reply from xxx.xxx.xxx.xxx: bytes=xx time=xxms TTL=xx”的結果時表示已經接受到了回覆信息,也就是說與目標主機的網絡連接正常。

   “PING”命令提供了豐富的命令選項,可以通過“ping /?”來查看其所有的選項和說明信息。

  • ipconfig——TCP/IP信息查看

   “IPCONFIG”命令,是程序員應該都知道的命令,該命令主要用於查看本機的IP配置信息,通常我們使用這個命令來查看本機的IP地址。用法很簡單:

IPCONFIG [選項]

該命令用於查看本機當前網絡連接配置的IP地址、網關等信息。

   通常情況下,我們可以通過網絡連接的屬性來查看本機IP地址,但是對應那些自動獲取網絡地址的機器你就束手無策了吧!呵呵...我們可以使用“ipconfig”命令來查看。“ipconfig”命令提供多種選項操作,可以使用“ipconfig/?”來查看這些選項的使用說明信息,默認情況下無選項的“ipconfig”命令可以查看當前打開的網絡連接的IP地址、子網掩碼以及網關信息;可以使用“/all”選項可以查看完整的本機網絡信息,包括主機名、本機物理地址(MAC)、IP地址、子網掩碼、網關、DNS服務器等信息。

  • net——網絡環境、服務、用戶等綜合管理

   “NET”是Windows綜合型管理工具,可用於管理網絡環境、服務、用戶、登錄等Windows中大部分重要的功能模塊,同時支持遠程計算機的管理。“net”命令是一個組合型命令,可以使用“net”或“net/?”來查看該命令的所有組合項。

   對應我來說最常用的就是它對服務的管理,可以使用“net”命令與“start”命令組合來實現服務的啓動操作,與“stop”命令的組合實現服務的停止操作。使用方式如下:

1
2
net start servername
net stop servername

注意:服務名稱可以通過服務選項模塊中的查看。

  • netstat——網絡連接信息查看

   “NETSTAT”是TCP/IP模塊提供的網絡狀態查看工具,可用於查看網絡統計和當前網絡連接信息。其實在做編程開發的過程中,“netstat”命令還是有必要了解的,尤其是Web開發中,我們可以使用“netstat”命令查看端口占用情況。用法很簡單:

NETSTAT [選項]

   通常情況下,沒有選項的“netstat”命令,用於查看本機的TCP連接情況,結果是一個本機與連接主機的映射地址以及狀態信息的列表。其實對我來說有用的基本就是用它來查看“端口號的佔用情況”了。該命令提供了豐富的選項,可以通過“netstat/?”來查看,其中“/a”或“-a”選項用於查看當前主機所有的連接和端口監聽情況,不僅包含TCP還包含UDP;“/b”或“-b”選項可以查看每個連接或監聽端口對應的可執行組件完全路徑名;“/n”或“-n”選項可以將顯示中的信息強制擴展爲數字模式,即IP和數字端口表述信息。

  • telnet——遠程連接

   “TELNET”實質是TCP/IP模塊提供的一個網絡客戶端工具,可以使用該工具登錄網絡上的遠程主機。話說這個命令行工具是比較強大的,可以實現數據包的發送的接受,哈哈...真是因爲其強大,所以我還不怎麼會使用,當然你可以好好研究研究。我曾經看到過一個例子,就是使用“telnet”命令來實現模擬HTTP訪問遠程主機,如果是一個站點則會打印出站點首頁的HTML代碼。使用“telnet”登錄遠程主機一般使用以下的方式:

1
telnet hostname port

其中“hostname”是指主機的唯一標識名稱,可以是IP、域名等;“port”表示的是端口號,默認爲“23”。

  • msg——消息發送

   “MSG”實質是TCP/IP模塊提供的網絡消息發送客戶端工具,可以在使用“msg”命令實現網絡上的消息傳輸功能,當然不能實現過於複雜的消息傳輸。用法比較簡單:

MSG 目標用戶 [選項] 消息

在模擬過程中“目標用戶”一般都是指本機用戶名,當然還可以是遠程主機的用戶名。例如使用“msg * 123”可以給本機所有的用戶發送消息“123”,本機用戶可以在彈出會話框中閱讀消息。

  • tasklist——系統進程查看

   “TASKLIST”是Windows提供的一個關於進程的監聽工具,該工具可以顯示本地或遠程主機系統上運行的任務或進程信息列表。其實和Windows系統中的任務管理器中的進程選項列表一致,只不過“tasklist”命令默認不會刷新而已。默認情況下,無選項參數的“tasklist”命令用於顯示系統當前時刻所有進程的名稱、ID、內存使用等信息;當然還提供多種選項操作,可以使用“tasklist/?”來查看。

  • taskkill——系統進程終止

   “TASKKILL”是Windwos提供的一個進程管理工具,該工具與“tasklist”工具非常相識,但是功能不一樣。“taskkill”命令可以結束本機或遠程主機上至少一個指定ID或名稱的進程。具體使用方式可以使用“taskkill/?”來查看。

   需要提出的是,Windwos系統還提供了一個進程管理工具叫“TSKILL”,與“taskill”的用法差不過,使用時需要指定一個進程ID或者進程名稱,由於“tasklist”可以查看進程ID和名稱,所以一般需要與“tasklist”命令相結合使用。

4.7.常用程序的運行命令
  • edit——文本編輯器(最基本的DOS級別的文本編輯器)

  • nslookup——域名和DNS偵測工具(可以檢查指定域名對應的IP地址)

  • shutdown——計算機關機、註銷、重啓命令行工具

  • regsvr32——系統DLL組件管理工具

  • calc——計算器程序

  • clipbrd——系統剪切板管理工具

  • dxdiag——DirectX信息檢查工具

  • gpedit.msc——組策略管理面板

  • notepad——記事本程序

  • regedit——註冊表編輯器

  • services.msc——服務管理器

  • control——控制面板

  • taskmgr——任務管理器

  • sysdm.cpl——系統屬性(我的電腦—屬性面板)

  • write——寫字板程序

  • winmsd——系統信息查看面板(Windows提供的系統、硬件、軟件環境)

  • winword——新建Office Word(必須安裝Office辦公軟件)

  • excel——新建Office Excel(必須安裝Office辦公軟件)

  • powerpnt——新建Office PowerPoint(必須安裝Office辦公軟件)

後記

   其實DOS下的命令不止以上所介紹的,個人閱歷有限,只列出了自己所知道的比較常用的DOS命令,對於其他的命令希望大家踊躍補充。

   梳理知識,分享大家,互利你我!怕拍板磚,就不知道自己整理的對知識掌握的問題所在,找到問題纔有所進步,歡迎大家踊躍的拍磚...

本文出自 “阿酷呆” 博客,請務必保留此出處http://akudy.blog.51cto.com/2277883/1212360


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章