2019年6月14日 星期五

【PC】Batch檔DIR轉向日文韓文檔名


最後更新時間 : 2020/03/10補充(2019/06/14)
記錄用餐時間 : 2019/06/14
Batch檔,當DIR轉向時如果有日文、韓文的uncode碼時,常常會變成亂碼。
研究一下,目前沒有找到完美的解法,為了偷懶,只好土法鍊鋼。
人性本懶~~



chcp 65001
dir E:\*.* /s >temp2xyzxyz.txt
chcp 950
copy temp2xyzxyz.txt 目錄全部.txt /Y
del temp2xyzxyz.txt /Q

如果看的懂就不必再看以下解釋。
第一行:系統頁碼轉為uncode(UTF8)。
第二行:把要存檔的目錄名轉向[暫時性文字檔]。
第三行:系統頁碼轉回中文(建議使用前,先確定自己電腦系統的頁碼比較保險)。
第四行:強迫複製[暫時性文字檔]為[目標文字檔]。
第五行:強迫刪除[暫時性文字檔]。

第二行的[暫時性文字檔],可以自己隨便取,但建議檔名越長越奇怪越好,以免覆蓋。
如果習慣採用純英數檔名的人,可以直接使用,省略這些麻煩。
會多第四行、第五行是因為系統頁碼轉為uncode後,這個batch檔內的[暫時性文字檔]所指定的檔名會錯誤,所以只好多此一舉。會用強迫的參數是因為懶得按按鍵。
[目標文字檔]的屬性會配合系統頁碼變動,所以此例的[目標文字檔]會是UTF8檔案。

嘗試用move代替第四行、第五行無效,因為只會複製不會刪除舊檔。

2020/03/10補充
以上的方式好像在部份Win10(or大部分的),無法正常使用。
在Win10中無論如何切換Code Page所產生的文字檔都是ANSI格式,可是用Windows PowerShell ISE不需要切換Code Page情況下,所產生的文字檔是UTF-16 LE格式。
(註:Code Page為950)
___
keyword : 【心得】, 【自用】, 【知識】, 【記錄】, 【PC】, uncode, UTF8, UTF-8, batch Unicode, dir 轉向 文字檔 日文, powershell, cmd line, 命令列, 命令提示字元, Code Page, 系統頁碼, 頁碼,
本文link : https://taiwanv.blogspot.com/2019/06/pcbatchdir.html
___
參考資料:
●How to put unicode in Cmd/Batch? - Super User) (2019/6/14 記錄)
https://superuser.com/questions/1075297/how-to-put-unicode-in-cmd-batch
●Pbice's Blog: 用Dir指令列出Unicode檔名清單) (2019/6/14 記錄)
http://pbice.blogspot.com/2010/11/dirunicode.html

沒有留言:

張貼留言

●基於網路的公開分享原則,開放所有人留言批評,但因本人不是公務人員,沒有領18%,也不是專業的格主,所以不一定會回覆。
●下列情況一律刪除:廣告、言之無物純搶頭香、批評私人。