我理解错了,题主说是bat包含中文运行乱码,我的是中文输出乱码[face]emoji:010.png[/face]
后来我亲测用另存为修改编码中文显示正常,但也有个另特殊的:
比如我将list.txt中文内容追加到test.txt中,
@echo off
chcp 65001
for /F "eol=# tokens=*" %%i in (list.txt) do echo %%i>>test.txt
echo 中文测试>>test.txt
用for循环那一行输入到test文件的中文内容正常,另存为修改编码无影响,这里的eol=#为忽略以#符号开头的那行,也可改为空格或其它符号,但会忽略这行,tokens=*为选取所有字符。神奇的是最后那行“中文测试”无论有没有6500这行,受影响的是用另存的修改编码,如默认为UTF-8改为ANSI将显示乱码。
但是:
for /L %%i in (1,1,3) do echo 中文测试>>test.txt
追加三行“中文测试”内容,在这里起作用是用另存为修改的编码!!![face]emoji:011.png[/face]