[批次] 關於unicode會變成亂碼與讀取檔案執行

作者: sanbis (方正無法達成,那麼有沒H)   2022-11-07 22:13:00
我利用編輯器產生了一串的建立資料夾的指令
該 bat 檔案編碼為 UTF-8
mkdir.bat
md "[系統測試][あアいイうウ]"
md "[系統測試]"
md "[あアいイうウ]"
但是在實際執行的時候會變成
c:\demo>md "[蝟餌絞皜祈岫][?弌蝋?换植?琐慎]"
c:\demo>md "[蝟餌絞皜祈岫]"
c:\demo>md "[?弌蝋?换植?琐慎]"
後來想說用迴圈來讀取檔案執行試試看
這時候才想到....靠么~這是 windows 不是 Linux ~
沒有 cat 給我用~Orz
google 上找了一下....雖然有找到透過迴圈讀取檔案的教學
for /f %%a in (mkdir.bat) do (echo %%a)
但是執行的結果只要碰到空白就視為結束
所以只會輸出三個 md
就算用雙引號包住變成
"md [系統測試]"
結果也是一樣~Orz
不知道有沒有哪位可以指點一下以上兩個問題
作者: esouxcon   2022-11-07 22:18:00
開啟CMD(這沒辦法用.bat的樣子)chcp 65001for /f "delims=" %i in (你的資料.txt) do md "%i"你的資料.txt裡面只留要的資料夾名稱 一行一個
作者: LPH66 (-6.2598534e+18f)   2022-11-08 06:21:00
把 chcp 65001 放進 .bat 當第一條指令應該就行了
作者: cancelpc (阿吉)   2022-11-09 17:34:00
同上,但我會在結束時,切回 950,避免影響其他批次
作者: esouxcon   2022-11-09 19:06:00
第一時間就試過了 不知道為什麼就是不行 系統Win10 x6422H2後來試了很白爛的方法 chcp 65001執行2次 竟然就可以又試了試 .bat第一行留空白就可以 不知道為什麼
作者: cancelpc (阿吉)   2021-03-09 10:16:00
因為你的cmd是UTF-8 BOM格式,被BOM部分干擾了第一行

Links booklink

Contact Us: admin [ a t ] ucptt.com