|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Как найти строку в блоке вывода bat, но вставить другую? |
|
CMD/BAT - [решено] Как найти строку в блоке вывода bat, но вставить другую?
|
Старожил Сообщения: 425 |
Есть вывод команды bcdedit
Приложение микропрограммы (101fffff) ------------------------------- идентификатор {08466ee1-90f9-11ef-a538-806e6f6e6963} device partition=\Device\HarddiskVolume13 path \EFI\UBUNTU\SHIMX64.EFI description ubuntu Приложение микропрограммы (101fffff) ------------------------------- идентификатор {58ec2b43-90b8-11ef-a537-806e6f6e6963} device partition=H: path \EFI\BOOT\BOOTX64.EFI description UEFI OS Приложение микропрограммы (101fffff) ------------------------------- идентификатор {58ec2b44-90b8-11ef-a537-806e6f6e6963} device partition=I: path \EFI\BOOT\BOOTX64.EFI description UEFI OS Как это сделать? |
|
Отправлено: 08:29, 23-10-2024 |
Ветеран Сообщения: 4553
|
Профиль | Отправить PM | Цитировать Понятно, что изначально хотелось выбирать идентификатор по описанию, но, какой смысл в этой всей чехарде, когда проще прописать идентификаторы напрямую и менять конфигурацию?
|
Отправлено: 17:26, 24-10-2024 | #31 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Старожил Сообщения: 425
|
Профиль | Отправить PM | Цитировать Цитата NickM:
Ладно, хрен с ним. Спасибо, что старались помочь. ПС. Спойлер не открывается. Ничего не показывает. Цитата NickM:
|
||
Отправлено: 23:50, 24-10-2024 | #32 |
Ветеран Сообщения: 4553
|
Профиль | Отправить PM | Цитировать Цитата Mancoffee:
Цитата Mancoffee:
Но, в любом случае, его нужно/ нужно будет чуть-чуть переделать и обрабатывать параметры в другом порядке, сначала decription, после device, и сделать второй параметр не обязательным. |
||
Отправлено: 06:33, 25-10-2024 | #33 |
Ветеран Сообщения: 4553
|
Профиль | Отправить PM | Цитировать Цитата NickM:
@echo off setlocal enableextensions enabledelayedexpansion set "p1=%1" set "p2=%2" For /F "Tokens=1* Delims= " %%a In ('type "%~dp0bcdedit.out"') Do ( if %%a EQU идентификатор set "ID=%%b" if %%a EQU device set "DEV=%%b" if %%a EQU path set "PATH=%%b" if %%a EQU description ( set "DESCR=%%b" if not defined p2 call :onepar %p1% else if "!DESCR!":"!DEV!" EQU %1:%2 ( echo."Изменяем загрузочную запись с описанием %p1% и устройством %p2%" echo."bcdedit /set {fwbootmgr} bootsequence !ID!" ) set "ID=" set "DEV=" set "PATH=" set "DESCR=" ) ) goto :EOF :onepar if "!DESCR!" EQU %1 ( echo."Изменяем загрузочную запись с описанием %1" echo."bcdedit /set {fwbootmgr} bootsequence !ID!" ) Скрытый текст
![]() |
|
Отправлено: 07:37, 25-10-2024 | #34 |
Старожил Сообщения: 425
|
Профиль | Отправить PM | Цитировать Цитата NickM:
Цитата NickM:
ПС. Про кодировку помню. |
||
Последний раз редактировалось Mancoffee, 25-10-2024 в 09:13. Отправлено: 09:06, 25-10-2024 | #35 |
Ветеран Сообщения: 4553
|
Профиль | Отправить PM | Цитировать Цитата Mancoffee:
Вот, сценарий обрабатывающий вывод команды: @echo off setlocal enableextensions enabledelayedexpansion set "p1=%1" set "p2=%2" For /F "Tokens=1* Delims= " %%a In ('bcdedit /enum') Do ( if %%a EQU идентификатор set "ID=%%b" if %%a EQU device set "DEV=%%b" if %%a EQU path set "PATH=%%b" if %%a EQU description ( set "DESCR=%%b" if not defined p2 call :onepar %p1% else if "!DESCR!":"!DEV!" EQU %1:%2 ( echo."Изменяем загрузочную запись с описанием %p1% и устройством %p2%" echo."bcdedit /set {fwbootmgr} bootsequence !ID!" ) set "ID=" set "DEV=" set "PATH=" set "DESCR=" ) ) goto :EOF :onepar if "!DESCR!" EQU %1 ( echo."Изменяем загрузочную запись с описанием %1" echo."bcdedit /set {fwbootmgr} bootsequence !ID!" ) Скрытый текст
![]() |
|
Отправлено: 10:52, 25-10-2024 | #36 |
Старожил Сообщения: 425
|
Профиль | Отправить PM | Цитировать Цитата NickM:
![]() С кавычками заработало. То бишь кавычки я так понимаю в любом случае нужны, даже если нет пробелов/спец. символов. Но заработало тоже не до конца. |
|
Отправлено: 11:30, 25-10-2024 | #37 |
Ветеран Сообщения: 4553
|
Профиль | Отправить PM | Цитировать Цитата Mancoffee:
Всё, должно работать. На вашем скрине запечатлён сценарий из предшествующего ответа: Цитата NickM:
Цитата NickM:
|
|||
Отправлено: 11:47, 25-10-2024 | #38 |
Старожил Сообщения: 425
|
Профиль | Отправить PM | Цитировать Цитата NickM:
Скрытый текст
@echo off setlocal enableextensions enabledelayedexpansion set "p1=%1" set "p2=%2" For /F "Tokens=1,2* Delims= " %%a In ('bcdedit /enum firmware') Do ( if %%a EQU идентификатор set "ID=%%b" if %%a EQU device set "DEV=%%b" if %%a EQU path set "PATH=%%b" if %%a EQU description ( set "DESCR=%%b" if not defined p2 call :onepar %p1% else if "!DESCR!":"!DEV!" EQU %1:%2 ( echo."Изменяем загрузочную запись с описанием %p1% и устройством %p2%" echo."bcdedit /set {fwbootmgr} bootsequence !ID!" ) set "ID=" set "DEV=" set "PATH=" set "DESCR=" ) ) goto :EOF :onepar if "!DESCR!" EQU %1 ( echo."Изменяем загрузочную запись с описанием %1" echo."bcdedit /set {fwbootmgr} bootsequence !ID!" ) А в так сказать параметрах к bat файлу операторы сравнения работать будут, точнее должны? Например для поиска того же UEFI OS, если искать по второму параметру, то может быть как указана буква к диску, так и volume. |
|
Отправлено: 12:09, 25-10-2024 | #39 |
Ветеран Сообщения: 4553
|
Профиль | Отправить PM | Цитировать Цитата Mancoffee:
|
|
Отправлено: 12:31, 25-10-2024 | #40 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Принтер - Каким образом можно вставить, лоток вывода бумаги Сanon 2900 | b1844133 | Прочее железо | 0 | 15-02-2020 11:16 | |
CMD/BAT - [решено] заменить с помощью bat'ника одну строку на другую | warkdimka | Скриптовые языки администрирования Windows | 2 | 18-02-2016 09:28 | |
[решено] В системном блоке хлопок (звук) такой как будто петарда взорвалась. Но все работает, | micro8 | Непонятные проблемы с Железом | 17 | 18-03-2011 23:01 | |
банально но как (!ПРАВИЛЬНО!) сохранить флешку и вставить её | Denis Shutka | Вебмастеру | 1 | 09-01-2005 23:37 | |
Как прекодлировать строку из одной кодировки в другую | Vlad Drakula | Вебмастеру | 11 | 05-07-2004 22:56 |
|