Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Найти строку и в ней записать в переменную содержимое между кавычек.

Ответить
Настройки темы
CMD/BAT - Найти строку и в ней записать в переменную содержимое между кавычек.

Новый участник


Сообщения: 35
Благодарности: 0

Профиль | Отправить PM | Цитировать


Изменения
Автор: rango13
Дата: 04-04-2018
Описание: добавление про FreeDOS.
Всем привет!

Необходимо пройтись поиском по каждой строке во всём файле, найти определенную строку(несколько слов вхождений) и в этой найденной строке записать в переменную слова, находящиеся между кавычек.

Как пример, ищем в файле ниже строку "Serial Number", затем в ней извлекаем значение "11325":

Код: Выделить весь код
....
Motherboard "ASUS"
....
Product Name "B150M-A"
Serial Number of motherboard "11325"


Upd. bat-файл будет грузиться только с FreeDOS.

Отправлено: 13:27, 03-04-2018

 

Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить PM | Цитировать


Цитата rango13:
Странно, ну ладно.
Если что, для накатывания FreeDOS на USB-флешку использовал программу Rufus. »
Странно. Хотя это не установленная и развёрнутая FreeDOS, а инсталляционный комплект, но там тоже есть неупакованный FIND.COM.

Отправлено: 06:29, 12-04-2018 | #21



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

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Ветеран


Contributor


Сообщения: 2708
Благодарности: 1684

Профиль | Отправить PM | Цитировать


rango13,
прохожусь поиском по каждой строке во всём файле, найти определенную строку(несколько слов вхождений) и в этой найденной строке выделяю слова, находящиеся между кавычек. Как записать в переменную - не знаю
Использовал батник, который генерит программу для старого QBasic 1.1 - думаю, сможете его разыскать без проблем. Подозреваю, проще полностью написать Вашу задачу на базике и не уродоваться с батником
Тестировал в MS DOS 8. Кстати, ставил на флэшку посредством Rufus
Код: Выделить весь код
@Echo Off
cls

Set FileIn=TEST.TXT
Set FindStr=Serial Number
Set BasTmp=bastmp.bas

Echo DIM StrIn AS STRING >%BasTmp% 
Echo DIM Finds AS STRING >>%BasTmp%
Echo DIM A AS STRING >>%BasTmp%
Echo. >>%BasTmp%
Echo DIM i AS INTEGER >>%BasTmp%
Echo DIM j1 AS INTEGER >>%BasTmp%
Echo DIM j2 AS INTEGER >>%BasTmp%
Echo. >>%BasTmp% 
Echo Finds = "%FindStr%" >>%BasTmp%
Echo. >>%BasTmp% 
Echo OPEN "%FileIn%" FOR INPUT AS #1 >>%BasTmp%
Echo. >>%BasTmp% 
Echo WHILE NOT EOF(1) >>%BasTmp%
Echo 	INPUT #1, StrIn >>%BasTmp%
Echo 	i = INSTR(1, UCASE$(StrIn), UCASE$(Finds)) >>%BasTmp%
Echo 	IF NOT i = 0 THEN >>%BasTmp%
Echo '		PRINT StrIn >>%BasTmp%
Echo 		j1 = INSTR(1, StrIn, CHR$(34)) + 1 >>%BasTmp%
Echo 		j2 = INSTR(j1, StrIn, CHR$(34)) >>%BasTmp%
Echo 		PRINT MID$(StrIn, j1, j2 - j1) >>%BasTmp%
Echo 	END IF >>%BasTmp%
Echo WEND >>%BasTmp%
Echo CLOSE #1 >>%BasTmp%
Echo SYSTEM >>%BasTmp%

QBASIC.EXE /RUN %BasTmp%

Pause

-------
Даже самая сложная проблема обязательно имеет простое, лёгкое для понимания, неправильное решение. Каждое решение плодит новые проблемы.


Последний раз редактировалось megaloman, 12-04-2018 в 20:44.

Это сообщение посчитали полезным следующие участники:

Отправлено: 19:03, 12-04-2018 | #22


Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить PM | Цитировать


Цитата megaloman:
который генерит программу для старого QBasic 1.1 - думаю, сможете его разыскать без проблем. Подозреваю, проще полностью написать Вашу задачу на базике и не уродоваться с батником »
Там и искать ничего не надо: в комплекте поставки идут пара basic'ов, fpc, куча компиляторов C/Objective C/C++ (включая известный проект DGGPP), несколько ассемблеров, PERL, REXX, Lua — в общем, ешь-не хочу, было бы желание.
Это сообщение посчитали полезным следующие участники:

Отправлено: 00:33, 13-04-2018 | #23



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Найти строку и в ней записать в переменную содержимое между кавычек.

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - [решено] Как записать в переменную результат выполнения команды? MSI Скриптовые языки администрирования Windows 64 24-12-2020 18:20
CMD/BAT - [решено] Узнать имя пользователя и записать в переменную Darkar25 Скриптовые языки администрирования Windows 37 13-01-2018 23:59
CMD/BAT - Поиск 1ой папки и записать ее в переменную Andreyk1s Скриптовые языки администрирования Windows 2 06-01-2017 23:31
CMD/BAT - найти файл и записать в переменную pzh2393 Скриптовые языки администрирования Windows 7 20-01-2013 03:35
CMD/BAT - [решено] Найти в реестре параметр и записать в переменную имя ветки в которой он находится root221 Скриптовые языки администрирования Windows 11 25-11-2012 07:54




 
Переход