2010-12-09 88 views
1

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

chcp 65001 
:: read my file... 

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

当我打电话CHCP所有的本身,它吐出我讨厌的线,而我要的是数量:

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

我怎么能在一个变量保存当前的代码页值改变之前,使在阅读我的文件后,我可以重新设置它,并且因此我的消息显示在控制台中显示正常?

回答

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

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

+0

乔伊你是我的英雄。 – glmxndr 2010-12-09 10:32:09