0

我在这个网站上发现了这个有用的脚本,用于为 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 命令即可获得相同的效果。

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

4

1 回答 1

0

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

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

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

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

于 2012-05-29T18:38:14.650 回答