Как мы можем прочитать вторую строку файла, используя пакетный скрипт? - PullRequest
0 голосов
/ 04 декабря 2018

Я хотел бы получить вторую строку файла (install.cfg), который содержит несколько строк текста.Я попытался с приведенным ниже кодом, который отлично работает на моем локальном компьютере, но при выполнении на компьютере с Windows, он бросает 'þ @' не распознается как внутренняя или внешняя команда, работающая программа или пакетный файл

for /f "tokens=1*delims=:" %%G in ('findstr /n "^" install.cfg') do if ( %%G equ 2 SET VERSION=%%H )

1 Ответ

0 голосов
/ 04 декабря 2018

Я предлагаю этот код в ASCII / ANSI / OEM (один байт на символ), а не Unicode ( UTF-8 или UTF-16 , несколько байтов на символ) кодированный пакетный файл:

for /F "usebackq skip=1 delims=" %%G in ("install.cfg") do set "VERSION=%%G" & goto HaveValue
:HaveValue
echo Version read from file: %VERSION%

Кодировка символов, используемая процессором команд Windows по умолчанию в среде командной строки, выводится при запуске в окне CMD команды chcp ( ch ange c ode p age) без каких-либо параметров и зависит от региона / страны / региона, который установлен для используемой учетной записи пользователя.Рекомендуется (обычно, но не всегда) записывать пакетный файл, используя такую ​​же кодировку символов соответственно кодовую страницу , которая используется по умолчанию командным процессором Windows в среде, используемой при запуске.пакетный файл, особенно в пакетном файле, содержащем символы со значением кода больше U + 007F (не-ASCII-символ).

FOR ожидает, что файл install.cfg будет закодирован по одному байту на символ,install.cfg также может быть в кодировке UTF-8 без или с меткой порядка байтов , если строка версии состоит только из символов ASCII.UTF-16 в кодировке install.cfg не может быть обработан напрямую с помощью команды FOR с использованием этого кода в среде командной строки по умолчанию, загруженной при двойном щелчке по пакетному файлу.

Для понимания используемых команди как они работают, откройте окно командной строки, выполните там следующие команды и полностью прочитайте все страницы справки, отображаемые для каждой команды.

  • echo /?
  • for /?
  • goto /?
  • set /?
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...