Пакетный файл для чтения 'N' символов из текстового файла - PullRequest
2 голосов
/ 21 декабря 2011

Я искал это по сети и нашел много кодов для извлечения всей строки из текста или замены текста другой, но не для того, что я искал.

Использование цикла For с токенами вернет набор (слово), разделенный пробелами.

Я хочу вытянуть только несколько символов из строки.

Например: 12345qwerty67890

Если это включено в текстовом файле, я хочу выбрать только «12345» и присвоить его переменной.

Любая помощь очень ценится.

Ответы [ 2 ]

5 голосов
/ 21 декабря 2011

установите HELP SET и попробуйте следующее, чтобы начать

@echo off
setlocal enabledelayedexpansion
for /f "tokens=*" %%a in (sample.txt) do (
  set line=%%a
  set chars=!line:~0,5!
  echo !chars! --- !line!
)
2 голосов
/ 21 декабря 2011

В командной строке введите help set.Там вы найдете больше информации о команде set, чем вы когда-либо хотели бы знать.Интересующая вас часть говорит:

May also specify substrings for an expansion.

    %PATH:~10,5%

would expand the PATH environment variable, and then use only the 5
characters that begin at the 11th (offset 10) character of the expanded
result.  If the length is not specified, then it defaults to the
remainder of the variable value.  If either number (offset or length) is
negative, then the number used is the length of the environment variable
value added to the offset or length specified.

Конечно, для того, чтобы использовать такие вещи с переменной цикла for, вам нужно сначала ознакомиться с очень своеобразным способом, которым переменныераскрываются в пакетных файлах Windows NT.Дайте мне знать, если у вас есть проблемы с этим, и я могу добавить больше информации.

...