古詩詞大全網 - 成語故事 - 在 dos 中dir的所有參數及其使用方法

在 dos 中dir的所有參數及其使用方法

菜鳥命令入門

適宜人群:沒有DOS基礎的初學者 本期命令:dir

學習目標:學會使用dir命令列出目錄和文件

很多菜鳥都會疑惑,在Windows下可以打開“我的電腦”顯示目錄和文件,但在“黑乎乎”的命令行窗口中,應該怎麽查看(列出)目錄和文件呢?這就需要使用DOS命令——dir。dir命令就像壹個軍隊裏的指揮官,他壹聲令下,所管轄的士兵就得按照他的要求排列、報數。通過dir命令後的參數,我們可以讓這些士兵(文件)按各種方式排列(按文件大小排列、按字母順序排列等)。

任務1:列出c:\windows下的目錄及文件

dir c:\windows

命令講解:dir命令最基本的使用方法即為“dir 要查看的目錄或路徑”,但這種方法有明顯的缺點——當列表中的目錄及文件過多時就無法完全顯示,形如刷屏,我們來看看任務2是怎麽解決這個問題的。

任務2:分頁列出c:\windows下的目錄及文件

dir c:\windows /p

命令講解:在剛才的基本使用方法的基礎上,我們在命令最後加上壹個參數“/p”(即“page”頁的縮寫),列文件時就會使用分頁顯示方式,即列出壹屏的目錄及文件後,提示“按任意鍵繼續...”,按任意鍵後則顯示下壹屏(見圖1)。在“我的電腦”中可以通過勾選“文件夾選項”中的“顯示隱藏文件”復選框來查看隱藏文件,在命令行方式下應該怎麽做呢?

任務3:列出c:\windows下的隱藏文件

dir c:\windows /a:h

命令講解:在命令的最後加上參數“/a:文件屬性”,就能顯示出指定屬性的文件(隱藏文件的屬性為“h”,目錄為“d”,系統為“s”,只讀為“r”)。但有的時候我們想看看目錄下是否有壹個特定名稱的文件,卻被文件列表中密密麻麻的文件名給挑花了眼。怎麽才能讓文件能夠像英文字典似的以字母順序排列,以便於我們查找文件呢?

任務4:以字母順序列出c:\windows下的目錄及文件

dir c:\windows /o:n

(見圖2 按字母順序排列的結果)

命令講解:“/o:排序方式”參數指定了dir命令顯示命令結果時的排序方式,排序方式設為“n”即代表按照文件名的字母順序排列(從A~Z,以此類推)。

小提示

★我們也可以指定排序方式為按照文件擴展名的字母順序(如:dir c:\windows /o:e)來找出特定擴展名的文件,同樣的,還可以使用文件大小等方式進行排序。

★“/o”和“/a”可以省略其後的冒號“:”,但之間不能留有空格,如“/o:n”省略後的形式應為“/on”。中級老鳥做腳本

適宜人群:有壹定DOS基礎的用戶 本期腳本:制作用戶指定的任意格式文件列表清單

腳本說明:每個人都有很多個人編輯或收藏的文件,如文本文件、Office文檔、圖形圖像、音頻視頻文件。久而久之,文件越積越多,查找起來既費時又費力。為便於文件檢索,有時需要制作壹份文件列表清單。為敘述方便,假設文件保存於目錄D:\myfolder,列表清單文件保存為C:\list.txt。如果需要保存在其他目錄中,可在代碼中用該目錄名替換D:\myfolder即可。

(插入圖3 要在雜亂無章的文件夾中找東西非常困難)

*以下任務中的代碼在Windows 9x/Me/2000/XP/2003下通用

任務1:列出D:\myfolder目錄下擴展名為doc的文件清單

第壹步:打開“記事本”,輸入下列內容並保存為MakeList.bat批處理腳本文件放置在D:\myfolder目錄:

@echo off

dir /o:n /b *.doc > c:\list.txt

腳本講解:關閉命令回顯(關於回顯命令echo可參考上期的《DOS快餐店》),按名稱(字母順序)輸出文件擴展名為doc的文件列表清單,保存到c:\list.txt。

小提示

★dir命令使用參數“/b”則表示只列出文件名。

★重定向符號“>”表示將其左側的命令的輸出結果(如上文即為dir命令列出的文件)寫入到其右側的文件中去。

第二步:打開目錄D:\myfolder,雙擊MakeList.bat文件,運行該批處理腳本文件。

第三步:用“記事本”打開C:\list.txt文件,即可查看D:\myfolder目錄下所有Word文檔的列表清單。

(插入圖4 生成的列表清單)

Just do it

替換批處理腳本文件的“doc”為其他文件擴展名,如“xls”則列出Excel文檔。這段腳本讓我們能夠很方便地生成目錄下的文件清單,可是每次要生成清單前都必須將該腳本文件復制到要生成清單的目錄下,這未免有些麻煩。能不能讓腳本文件能夠像DOS命令那樣支持參數呢?

任務2:支持參數的文件清單腳本

特別說明:該腳本的使用方法為“MakeList.bat 要列出的擴展名 進行操作的目錄”(例如:MakeList.bat txt c:\windows)。

第壹步:打開記事本,輸入下列內容,然後保存為“MakeList.bat”批處理腳本文件,可保存於任意文件夾,建議保存於“我的文檔”、“C:\”文件夾或其他盤根目錄下:

@echo off

if {%2} == {} (set mypath=) else set mypath=%2\

dir /on /b %mypath%*.%1 > c:\list.txt

if errorlevel 1 echo 命令格式:makelist {文件擴展名} [驅動器:][路徑] > c:\list.txt

腳本講解:首先關閉命令回顯。如果(即腳本中的“if”)檢測第二個參數(%2表示第二個命令參數,即腳本進行操作的目錄,為防止目錄參數為空字串,須在其兩邊加上大括號“{}”)是否為空(即在使用命令時沒有指定第二個參數,如:MakeList txt),為空則刪除上壹次設置的mypath環境變量(如果有的話),否則設置mypath環境變量(set命令用於設置環境變量)為參數末端加壹反斜桿(即%2\,如%2這個參數的值為“C:\test”,則變為“C:\test\”)。最後按文件名稱的字母順序輸出mypath中所含路徑下指定擴展名(即由第壹個參數%1指定)的文件列表清單文件。如果找不到文件或批處理命令參數錯誤,則輸出提示信息(echo後面的即為錯誤提示)。

第二步:打開“命令提示符”(Windows 2000/XP/2003)或“MS-DOS方式”(Windows 9x/Me)窗口,將當前驅動器和目錄改變到MakeList.bat批處理腳本文件所在目錄。

第三步:假設現在要在目錄D:\myfolder中列出文本文檔(即*.txt)清單,則輸入“makelist txt d:\myfolder”命令即可(不含引號)。如果當前工作驅動器和目錄已是D:\myfolder,只要輸入“makelist txt”命令,效果壹樣。

現在趕快打開C:\list.txt文件查看列表清單文件,是不是很棒?

小提示

★在命令行狀態下執行批處理命令時,不必鍵入最後的“.bat”擴展名,因為BAT文件的優先級要高於EXE和COM文件(即如果同壹目錄下有a.bat、a.exe和a.com,在命令行下執行a,則系統會優先調用a.bat文件)。

★輸入目錄參數時不要加反斜桿,如“C:\test”而不能使用“C:\test\”。

★如目錄名中含有空格或長命名,都必須在路徑兩邊加上英文雙引號,或者使用8.3規範(格式)。高級專家來把脈

適宜人群:已掌握各條DOS命令的高級用戶 把脈對象:讓dir列出帶有指定關鍵字的文件

診斷結果:即使指定了字母排序顯示方式,要在dir命令的壹大堆結果中找到所需的文件也是非常困難的,如果能讓dir命令支持關鍵字就能解決這個問題了。

治療方案:利用find命令配合找出dir命令結果中含有指定關鍵字的文件名。可以使用管道“|”將dir的輸出作為其他命令的輸入參數。使用通配符(*或?)指定要顯示的文件名或目錄名(例:“dir *.txt”、“dir fan.*”)。下面以找出c:\windows下文件名中帶有“win”關鍵字的exe文件為例解決這個問題。

dir c:\windows\*.exe | find "win"

(插入圖5 指定關鍵字後運行的效果)

命令講解:使用dir命令列出c:\windows下的所有exe文件,再將這個輸出結果通過管道傳遞給find命令,由其對結果進行二次加工,篩選出含有“win”關鍵字的那些行(find命令及管道的使用,我們將在今後的DOS快餐店中為大家詳細講解,敬請關註)。

小提示

要了解dir命令的更多參數,可以在命令行窗口中輸入“dir/?”(不含引號,替換其中的“dir”可以獲得其他命令的用法)即可。