|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Найти строку и в ней записать в переменную содержимое между кавычек. |
|
|
CMD/BAT - Найти строку и в ней записать в переменную содержимое между кавычек.
|
Новый участник Сообщения: 35 |
Всем привет!
Необходимо пройтись поиском по каждой строке во всём файле, найти определенную строку(несколько слов вхождений) и в этой найденной строке записать в переменную слова, находящиеся между кавычек. Как пример, ищем в файле ниже строку "Serial Number", затем в ней извлекаем значение "11325":
Upd. bat-файл будет грузиться только с FreeDOS. |
|
Отправлено: 13:27, 03-04-2018 |
Забанен Сообщения: 795
|
|
Отправлено: 13:38, 03-04-2018 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Новый участник Сообщения: 35
|
Профиль | Отправить PM | Цитировать Цитата x0r:
И нужно именно bat-файлом сделать, т.к. скрипт этот будет грузиться из FreeDOS. |
|
Последний раз редактировалось rango13, 04-04-2018 в 05:17. Отправлено: 13:52, 03-04-2018 | #3 |
Ветеран Сообщения: 2728
|
Профиль | Отправить PM | Цитировать rango13,
Вот вариант
@Echo Off cls Call :Quote "Z:\Box_In\тра ля ля.txt" "Serial Number" "Rezult" Echo [%Rezult%] ErrorLevel=%ErrorLevel% pause GoTo :Eof :Quote Set "%~3=" For /F "usebackq tokens=2 delims=:" %%a In (`2^>nul FINDSTR /B /I /N /C:%2 %1`) DO (Call :OutQuote "%%a" %3 &Exit /B 0) Exit /B 1 :OutQuote Set "OutRez=%~1" Call :OutRez0 "%OutRez:*"=% %2 GoTo :Eof :OutRez0 Set "%~2=%~1" GoTo :Eof |
------- Последний раз редактировалось megaloman, 03-04-2018 в 16:12. Отправлено: 15:21, 03-04-2018 | #4 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать megaloman, боюсь, во:
Цитата rango13:
|
||
Отправлено: 17:41, 03-04-2018 | #5 |
Новый участник Сообщения: 35
|
Профиль | Отправить PM | Цитировать Цитата Iska:
|
|
Отправлено: 05:20, 04-04-2018 | #6 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать rango13, во FreeDOS команда call может использоваться только для вызова внешних пакетных файлов, возможность вызова внутренних процедур (aka «Call :Quote …») отсутствует. Нет там и goto :eof, нет exit /b, нет и разбора по for /f.
|
Отправлено: 13:49, 04-04-2018 | #7 |
Новый участник Сообщения: 35
|
Профиль | Отправить PM | Цитировать Цитата Iska:
Утилита, которая предоставляет информацию по материнской плате, работает только из DOS. Т.е. установил на usb-флешку FreeDOS, запустил утилиту, отображающую необходимую информацию и из её вывода вытащил определенные значения, которые затем этой же утилитой и изменил. Вот пример её вывода
Initializing the SMBIOS interface. Please wait a moment...... Name R/W Status Information --------------------------- --- ------ ---------------------------------- (/IV)BIOS version R Done "2501" (/ID)BIOS release date R Done "07/22/2015" (/SM)System manufacture R Done "ASUS" (/SP)System product R Done "B85M-G" (/SV)System version R Done "System Version" (/SS)System Serial number R Done "sernum-791" (/SU)System UUID R Done "60112E33DAD7DD1193FA10C37B9408E0h" (/SK)System SKU number R Done "All" (/SF)System Family R Done "ASUS" (/BM)Baseboard manufacture R Done "ASUSTeK COMPUTER INC." (/BP)Baseboard product R Done "B85M-G" (/BV)Baseboard version R Done "Rev X.0x" (/BS)Baseboard Serial number R Done "140525894105007" (/BT)Baseboard Asset Tag R Done "To be filled by O.E.M." (/BLC)BB. Loc. in Chassis R Done "To be filled by O.E.M." BaseBoardHandle = "0002h" (/BMH)Baseboard manufacture R Done "ASUSTeK COMPUTER INC." (/BPH)Baseboard product R Done "B85M-G" (/BVH)Baseboard version R Done "Rev X.0x" (/BSH)Baseboard Serial number R Done "140525894105007" (/BTH)Baseboard Asset Tag R Done "To be filled by O.E.M." -- More -- (/BLCH)BB. Loc. in Chassis R Done "To be filled by O.E.M." (/CM)Chassis manufacture R Done "Chassis Manufacture" (/CT)Chassis type R Done "03h" (/CV)Chassis version R Done "Chassis Version" (/CS)Chassis Serial number R Done "Chassis Serial Number" (/CA)Chassis Tag number R Done "Asset-1234567890" (/CO)Chassis OEM value R Done "00000000h" (/CSK)Chassis SKU Number R Done "To be filled by O.E.M." (/OS)OEM string #1 R Done "To Be Filled By O.E.M." (/OS)OEM string #2 R Done "To Be Filled By O.E.M." (/OS)OEM string #3 R Done "AB85" (/OS)OEM string #4 R Done "To Be Filled By O.E.M." (/SCO)System Conf. Op. #1 R Done "To Be Filled By O.E.M." (/PBH)PortBat Handle R Invalid (/PBL)PortBat Location R Invalid (/PBM)PortBat Manufacturer R Invalid (/PBD)PortBat Manu. Date R Invalid (/PBS)PortBat Serial Num R Invalid (/PBN)PortBat Device Name R Invalid (/PBCH)PortBat Device Chem. R Invalid (/PBCA)PortBat Design Cap. R Invalid (/PBV)PortBat Design Volt. R Invalid (/PBSV)PortBat SBDS Ver.Num. R Invalid (/PBE)PortBat Maxmum Error R Invalid (/PBSN)PortBat SBDS Serial Num.R Invalid (/PBSD)PortBat SBDS Manu. Date R Invalid (/PBSC)PortBat SBDS Dev. Chem. R Invalid Сейчас приходится вручную запускать три команды с ключами: (/SM), (/SP), (/SS). В первые две записываются значения из выделенных жирным строк, а последнее - тот номер, который дала бухгалтерия. |
|
Последний раз редактировалось rango13, 05-04-2018 в 06:12. Отправлено: 06:04, 05-04-2018 | #8 |
Ветеран Сообщения: 1274
|
Профиль | Отправить PM | Цитировать может Phoenix BIOS Setup ?
|
Отправлено: 10:04, 05-04-2018 | #9 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата rango13:
|
|
Отправлено: 13:45, 05-04-2018 | #10 |
|
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
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 |
|