ANSI / Unicode конфликт в командном файле
У меня есть несколько командных файлов, которые используют текстовый файл для независимости от языка. До вчерашнего дня все работало нормально ... но потом я начал переводить стандартные тексты на голландский и немецкий языки. Оба языка используют так называемые диакритические или акцентированные символы, такие как ä, ë, ö. Я думаю, что испанский даст те же проблемы с. Я создал текстовый файл с помощью Блокнота, используя стандартную кодировку ANSI. Просто набрав (DOS: TYPE) файл показал неправильные акцентированные символы: например, ë показал как Ù. После того, как я отредактировал текстовый файл и сохранил его в кодировке Unicode, DOS TYPE показал именно то, что я набрал в блокноте. В этот момент я думал, что моя проблема решена ... но мой пакетный код теперь не показывает мне никакого текста! Весь текст извлекается из файла командным файлом, который выглядит следующим образом (упрощенно):
@rem Parms %1 text type number File %%a program name
@rem %2 program name (double quoted) %%b - - filler (tabs)
@rem %3 text number %%c text number
@rem %4 replacement value - 1 %%d - - filler (tabs)
@rem %5 replacement value - 2 %%e text string
set TempText=
set TempType=
setlocal enabledelayedexpansion
@rem Read file until both values are set ...
for /f "usebackq tokens=1,2,3,4,5 delims=|" %%a in ("%EnvPath%Text.txt") do (
if /i %%a==Tools (if /i %%c==%1 (set TempType=%%e))
if /i %%a==%~2 (if /i %%c==%3 (set TempText=%%e))
if not "!TempType!"=="" (if not "!TempText!"=="" (goto :Leave))
)
:Leave
endlocal & set TempText=%TempText%&set TempType=%TempType%
когдаECHO
являетсяON
это показывает, что строки не читаются из файла или цикл FOR никогда не выполняется.
Мой вопрос: как я могу сделать цикл FOR для чтения текстов Unicode?