[批次] 关于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