2010-11-06

用Dir指令列出Unicode檔名清單

我原本就知道MS-DOS模式底下的dir指令可以將結果輸出成文字檔,這樣可以很方便的將所有檔案的檔名做成清單。不過,遇到Unicode檔名該如何處理?看了這篇文章〈利用 dir 將檔案總管中的目錄裏的檔名轉成文字檔〉,覺得很實用,摘記如下:

  1. 先新增一個文字檔(例如list.txt),將編碼改成Unicode。
  2. 輸入cmd /u,以Unicode模式執行。
  3. 執行dir指令,dir >> list.txt。如果只想列出檔名、不要日期、路徑等資訊,可以加參數 b
  4. 注意輸出時一定要有2個輸出符號>>,否則會亂碼。

如果需要大量更改檔名,可以配合Ant Renamer使用。

6 則留言:

匿名 提到...

謝謝你, 我找了很久也找不到方法, 原本有 CMD/U 便可解決了

匿名 提到...

谢谢你,讓我解決了我的難題,方便多了。

Unknown 提到...

太感謝了!原來要<<才不會變成亂碼!哈哈!

Hoya 提到...

謝謝!被您幫到了

匿名 提到...

輸出文字檔還是亂碼哩?
1. > xxx.txt
>的意思將CMD內容輸出為一檔案,若系統中已有此檔案,會強制做覆蓋。

2. >> xxx.txt
>>的意思也是將CMD內容輸出為一檔案,若系統中已有此檔案,
會保留原本已有的資訊,並在下方新增CMD輸出之內容。

匿名 提到...

版主說的用cmd /u方式,實際測試結果依舊是一堆亂碼,而且寫在bat檔裡會變成只停留在CMD視窗中不會接著執行dir輸出指令,有用的方法是使用chcp 65001更改為UTF-8編碼(65001為UTF-8 Code Page),再用dir /b >list.txt就能得到正確顯示的Unicode檔名的list.txt了。