2015年11月11日星期三

列出檔案清單

本文以WINDOWS 7作實驗,其他WINDOWS系統都應該杷同。

目標:
列出指定目錄及所有子目錄中的檔案,匯出成一個檔案。

1. 將 Windows console 轉成UTF-8編碼
不知為何,Windows的console不是UTF-8編碼的,如此一來,有部分檔案名會亂碼,必須將編碼轉成UTF-8。
在console執行

$ chcp 65001


2. 列出檔案清單
先列子目錄,以檔案名+日期(舊到新)排序,匯出到檔案 "list_all.txt"

$ dir /s /ognd > list_all.txt

  /S          顯示指定目錄及所有子目錄中的檔案。
  /O          依照指定的排序順序來列出檔案。
  sortorder    N  依名稱 (英文字母)   S  依大小 (最小的在前)
               E  依副檔名 (英文字母) D  依照日期與時間 (日期較早的在前)
               G  先列出子目錄        -  表示相反的順序

完成!

ref:
1. http://blog.darkthread.net/post-2011-08-11-command-prompt-codepage.aspx
2. http://superuser.com/questions/269818/change-default-code-page-of-windows-console-to-utf-8
3. windows help
DIR [drive:][path][filename] [/A[[:]attributes]] [/B] [/C] [/D] [/L] [/N]
  [/O[[:]sortorder]]  [/P] [/Q] [/R] [/S] [/T[[:]timefield]] [/W] [/X] [/4]

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

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

參數可能會在 DIRCMD 環境變數預先設定。您可以在任何參數使用連字號字首(-)
來覆蓋預先的設定--例如: /-W

沒有留言:

發佈留言