powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Windows [игнор отключен] [закрыт для гостей] / Вытащить текст из найденной строки. BAT
10 сообщений из 10, страница 1 из 1
Вытащить текст из найденной строки. BAT
    #35472432
Фотография vista-rus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сам файл list.txt содержит следующие строчки
Код: plaintext
1.
2.
3.
<field_id>001</field_id>
<field_id>495</field_id>
<field_id>899</field_id>
<field_id>988</field_id>

При выполнении команды

Код: plaintext
FINDSTR  /R "<field_id>98"[0-9] c:\list.txt

выводится следующее
Код: plaintext
<field_id> 988 </field_id>

Задача состоит в том, как мне выдернуть из этой строчки только значение 988
...
Рейтинг: 0 / 0
Вытащить текст из найденной строки. BAT
    #35472433
Фотография vista-rus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Все это нужно в батнике делать, скрипты не предлагать :)
...
Рейтинг: 0 / 0
Вытащить текст из найденной строки. BAT
    #35472437
Фотография Relic Hunter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> help for Some examples might help:

FOR /F "eol=; tokens=2,3* delims=, " %i in (myfile.txt) do @echo %i %j %k

would parse each line in myfile.txt, ignoring lines that begin with
a semicolon, passing the 2nd and 3rd token from each line to the for
body, with tokens delimited by commas and/or spaces. Notice the for
body statements reference %i to get the 2nd token, %j to get the
3rd token, and %k to get all remaining tokens after the 3rd. For
file names that contain spaces, you need to quote the filenames with
double quotes. In order to use double quotes in this manner, you also
need to use the usebackq option, otherwise the double quotes will be
interpreted as defining a literal string to parse.

%i is explicitly declared in the for statement and the %j and %k
are implicitly declared via the tokens= option. You can specify up
to 26 tokens via the tokens= line, provided it does not cause an
attempt to declare a variable higher than the letter 'z' or 'Z'.
Remember, FOR variables are single-letter, case sensitive, global,
and you can't have more than 52 total active at any one time.

You can also use the FOR /F parsing logic on an immediate string, by
making the filenameset between the parenthesis a quoted string,
using single quote characters. It will be treated as a single line
of input from a file and parsed.

Finally, you can use the FOR /F command to parse the output of a
command. You do this by making the filenameset between the
parenthesis a back quoted string. It will be treated as a command
line, which is passed to a child CMD.EXE and the output is captured
into memory and parsed as if it was a file. So the following
example:

FOR /F "usebackq delims==" %i IN (`set`) DO @echo %i

would enumerate the environment variable names in the current
environment.
...
Рейтинг: 0 / 0
Вытащить текст из найденной строки. BAT
    #35472480
Фотография vista-rus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Relic Hunter > help for Some examples might help:

FOR /F "eol=; tokens=2,3* delims=, " %i in (myfile.txt) do @echo %i %j %k



гм, а на примере?
...
Рейтинг: 0 / 0
Вытащить текст из найденной строки. BAT
    #35472486
Фотография vista-rus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Во вторых, мне нужно просто строку обработать а не файл.
...
Рейтинг: 0 / 0
Вытащить текст из найденной строки. BAT
    #35474565
Фотография Relic Hunter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vista-rusгм, а на примере?
Код: plaintext
1.
2.
3.
4.
5.
list.txt
-------------------------
<field_id>001</field_id>
<field_id>495</field_id>
<field_id>899</field_id>
<field_id>988</field_id>
Код: plaintext
1.
2.
3.
@echo off
FOR /F "tokens=2 delims=<>" %%i in (list.txt) do (
echo  %%i
)
Код: plaintext
1.
2.
3.
 001
 495
 899
 988
...
Рейтинг: 0 / 0
Вытащить текст из найденной строки. BAT
    #35477501
Фотография vista-rus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
СПАСИБО!!!
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Вытащить текст из найденной строки. BAT
    #38316368
KYI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
KYI
Гость
Добрый день!
Подскажите как можно распарсить вот такую строку
Ответ от 93.158.134.203: число байт=32 время=2мс TTL=56
Необходимо получить чистый ip-адрес.

Пробовал указанный пример и его разные модификации (на что мозгов хватило)
и самое лучшее что у меня получилось
93.158.134.203: число байт=32 время=2мс TTL=56
...
Рейтинг: 0 / 0
Вытащить текст из найденной строки. BAT
    #38316380
KYI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
KYI
Гость
Еще раз перечитал внимательно справку и вот при таком условии
Код: html
1.
2.
3.
FOR /F "tokens=2,3 delims=Ответ:" %%i in (e:\123.txt) do (
echo  %%i
)


я получил почти то, что надо.
Проблема в том, что перед ip-адресом стоят 3 пробола и в конце один.
Как от них избавиться?
...
Рейтинг: 0 / 0
Вытащить текст из найденной строки. BAT
    #38316388
KYI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
KYI
Гость
Товарищи, прошу прощения - туплю по страшному
пробелы после echo надо убрать и все получается на 1005 как надо.
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / Windows [игнор отключен] [закрыт для гостей] / Вытащить текст из найденной строки. BAT
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]