我原本就知道MS-DOS模式底下的dir指令可以將結果輸出成文字檔,這樣可以很方便的將所有檔案的檔名做成清單。不過,遇到Unicode檔名該如何處理?看了這篇文章〈利用 dir 將檔案總管中的目錄裏的檔名轉成文字檔〉,覺得很實用,摘記如下:
- 先新增一個文字檔(例如list.txt),將編碼改成Unicode。
- 輸入cmd /u,以Unicode模式執行。
- 執行dir指令,dir >> list.txt。如果只想列出檔名、不要日期、路徑等資訊,可以加參數 b。
- 注意輸出時一定要有2個輸出符號>>,否則會亂碼。
如果需要大量更改檔名,可以配合Ant Renamer使用。
6 則留言:
謝謝你, 我找了很久也找不到方法, 原本有 CMD/U 便可解決了
谢谢你,讓我解決了我的難題,方便多了。
太感謝了!原來要<<才不會變成亂碼!哈哈!
謝謝!被您幫到了
輸出文字檔還是亂碼哩?
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了。
張貼留言