在批处理文件中,从包含西班牙字符的文件中的行设置变量

时间:2012-05-29 18:03:43

标签: file variables text batch-file

我在这个网站上找到了这个有用的脚本,可以为txt文件中的行赋值。

@echo off

setlocal ENABLEDELAYEDEXPANSION
set vidx=0
for /F "tokens=*" %%A in (caplist.txt) do (
    SET /A vidx=!vidx! + 1
    set var!vidx!=%%A
    echo %%A
)
set var > test.txt
pause

它工作正常,但我的文本文件中的行包含西班牙语字符,如ñ,é等。 test.txt中的行是正常的,但for循环中的回显显示异域字符。 顺便说一句,我只是对文件执行简单的Type命令就可以获得相同的效果。

有人可以帮忙吗? 非常感谢

1 个答案:

答案 0 :(得分:0)

这是因为显示cmd.exe输出的终端窗口正在使用caplist.txt中的字符编码的不同代码页。

可能它们使用ISO 8859-1或UTF-8进行编码。

在您的终端尝试chcp 1250,看看这是否可以解决您的问题。

如果没有,请以十六进制转储文本文件并找出所使用的编码,并相应地设置终端代码页。