2012-05-29 1 views
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 

Он отлично работает, но строки в моем текстовом файле содержат испанский characteres как N, E и т.д. Строки в test.txt исправна, но эхо в для дисплеев цикла экзотических символов. BTW, я получаю тот же эффект, просто выполняя простую команду типа файла.

Может ли помочь помощь? Большое спасибо

ответ

0

это потому, что окно терминала, отображающая выход cmd.exe использует другой кодовую, что символы в caplist.txt кодируются в.

Вероятно, они кодируются с использованием либо ISO 8859- 1 или UTF-8.

Попробуйте chcp 1250 у вашего терминала, чтобы узнать, устраняет ли эта проблема.

Если нет, выгрузите текстовый файл в шестнадцатеричном виде и сравните используемую кодировку и соответствующим образом настройте страницу кода терминала.

+0

На самом деле я задал аналогичный вопрос здесь относительно set -p, и ответ, предоставленный rjjj, решил проблему с chcp 1250. Конечно, я попробовал аналогичный подход с этой новой проблемой, но не смог. Я не знаю, как сбрасывать текстовый файл. –

+0

он может быть закодирован в другой кодовой странице; или, вероятно, в UTF-8, хотя это не технически кодовая страница. Откуда появился исходный txt-файл? как он производится? с редактором? какой редактор? Чтобы выгрузить файл, используйте шестнадцатеричный демпфер или шестнадцатеричный редактор, вы можете найти там десятки. Или попробуйте 'debug file.txt', а затем' d'. –

+0

Я создал файл с помощью Notepad –