批处理:编码地狱

时间:2010-12-09 10:23:47

标签: encoding batch-file

在DOS批处理中,我必须从以UTF-8编码的文件中读取文件路径。

chcp 65001
:: read my file...

现在我脚本中显示的所有消息都被破坏(突出显示的字符显示错误)。所以我想我必须恢复到之前的chcp值。

当我单独调用chcp时,它会向我吐出一条令人讨厌的线,而我想要的只是数字:

C:...>chcp
Page de codes active : 850

如何在更改之前将当前代码页值保存在变量中,以便在读取文件后可以将其设置回来,从而使我在控制台中显示的消息显示正常?

1 个答案:

答案 0 :(得分:2)

for /f "tokens=2 delims=:" %a in ('chcp') do set OLDCP=%a
set OLDCP=%OLDCP:~1%

第二行删除数字前的空格。实际上并不需要,但我尝试保持我的价值观清洁。