2014年3月17日 星期一

使用dir產生資料夾清單

動機

當資料夾內的檔案太多,想要產生一個檔案清單,或是資料夾清單。以下提供一個使用windows內建指令就可以完成的做法。

Reference

1. 工作小祕訣:資料夾內檔名全複製!
2. 資料夾檔案名稱轉成文字檔
3. 好用的dir指令
4. 目錄與檔案管理常用指令

基本篇

Ref.1教我們可以將dos指令利用記事本產生一個執行檔,方便我們重覆執行
Example

@echo off
dir /b /on >list.txt

Comment
1. 將以上兩行字複製到記事本,另存新檔時,存檔類形改成所有格式,檔名改成 list.bat,之後執行bat檔就可以產生一個List檔
2. 可以將這個bat檔帶至任何一個需要執行這個功能的資料夾,十分方便。
3. 第一行 @echo off只是將執行的畫面隱藏起來,不放也可以。
4. 第二行 dir /b /on /s >list.txt是主要的功能,它叫電腦對此資料夾以下的檔案進行檢索,將檢索的結果存成"list.txt"檔,當然存成其他檔名也可以。

進階篇

將dir後續的指令進行置換,可以改變檢所的目標,可以改變輸出的格式
主要是參考Ref.3的詳細介紹,首先我們看看內文是怎麼說的

DIR [drive:][path][filename] [/A[[:]attributes]] [/B] [/C] [/D] [/L] [/N]
[/O[[:]sortorder]] [/P] [/Q] [/S] [/T[[:]timefield]] [/W] [/X] [/4]

[drive:][path][filename]:指定要顯示的磁碟機、目錄或檔案。

/A :依照指定的檔案屬性來顯示檔案。
attributes
    D:目錄
    R:唯讀檔
    H:隱藏檔
    A:保存檔
    S:系統檔案 - 無意義
/B:使用單純格式 (沒有標頭資訊或摘要)。
/C: 顯示檔案大小千位數分隔符號。這是
/D:與寬的列表格式相同,但是依照欄來排序。
/L :使用小寫顯示。
/N: 使用新的長列表格式,檔名會顯示在最右方。
/O: 依照指定的排序順序來列出檔案。
sortorder
    N 依名稱 (英文字母)
    S 依大小 (最小的在前)
    E :依副檔名 (英文字母) D 依照日期與時間 (日期較早的在前)
    G 先列出子目錄 - 表示相反的順序
/P:當資料填滿整個螢幕時暫停顯示。
/Q:顯示檔案擁有者。
/S:顯示指定目錄及所有子目錄中的檔案。
/T:指定用來顯示或排序的時間欄位
timefield
    C:建立
    A :上次檔案存取時間
    W:上次寫入檔案時間
/W:使用寬的列表格式。
/X :顯示對非 8.3 格式的檔案產生的短檔名。
這個格式和 /N 相同,但是短檔名會插入在長檔名之前。 如果沒有長檔名存在,該處會顯示空白。
/4:顯示四位數的年份
Example
我希望列出此資料夾以下所有資料夾,以及所有子資料夾內的資料夾清單時,需要的指令如下
dir /a:d /b /on /s >list.txt

Comment
1. /a:d表示我只想列出資料夾
2. /s 表示要包含子資料夾內的資料








1 則留言:

  1. 如果檔案名稱不要檔案的副檔名,應該怎做?謝謝

    回覆刪除