2019年4月2日 星期二

處理 .bat 有中文路徑的問題

在 windows 中,如果想寫一個批次執行檔案 .bat,但指令中又包含中文字時,擔心是否會造成執行上的失敗?答案是:不一定。


一、如果你是用 windows 的記事本撰寫包含中文的 bat 檔,在沒有特別中文字的情況下,都可以執行。

二、如果你是用 NotePad++撰寫,預設情況下,有中文字都會出錯。

很奇怪對吧!

因為 Windows Command 視窗,預設開啟時使用的 Code Page 是 950 (Big-5),而上述第一種範例,因為記事本預設是用 ANSI 編碼來存檔,所以兩個人剛好是同一國的,可以互相溝通。但如果你在記事本輸入了包含 Unicode 字元時(例如:喆),如果照舊使用 ANSI編碼,就會造成字元遺失,否則,你就得轉成 Unicode 編碼來保存。只是這樣轉換後, Windows Command 就不跟你好了,你們就不再是同一國了,程式就無法執行下去。




同理,在第二種範例,因為使用 NodePad++編寫,預設是使用 UTF-8,所以一開始就與 Windows Command 格格不入。但他卻可以避免掉一些特別中文字的問題啊!於是,出現第三種聲音了,就是要求 Windwos Command 自己要改變,改變他的 Code Page,改成 UTF-8,這樣大家不就又站在同一個水平上,你我相容了嗎?


改變 Windows Command Code Page 的方法是: chcp 65001,只要將這一行放到 .bat 的第一行就可以了。


1 則留言: