Как найти строку в блоке вывода cmd, но вставить другую из блока?

Есть вывод из команды bcdedit.exe /enum firmware
-------------------------------
идентификатор           {cd433883-b798-11ed-9f7d-806e6f6e6963}
description             Hard Drive

Приложение микропрограммы (101fffff)
-------------------------------
идентификатор           {ea6a5a16-d6bf-11ee-a255-806e6f6e6963}
device                  unknown
path                    \EFI\MICROSOFT\BOOT\BOOTMGFW.EFI
description             USB HDD

Приложение микропрограммы (101fffff)
-------------------------------
идентификатор           {fce77d1c-542f-11ef-a47d-806e6f6e6963}
device                  partition=\Device\HarddiskVolume2
path                    \EFI\UBUNTU\SHIMX64.EFI
description             Kubuntu

Нужно найти значение description, но вставить в нужное место идентификатор.
Вот так нахожу
for /f "tokens=*" %%i IN ('^" c:\Windows\System32\bcdedit.exe /enum firmware ^| findstr /C:"Arch" ^"') DO echo %%i

Вставить нужно в такую строку
bcdedit /set {fwbootmgr} bootsequence {ВставитьСюдаИдентификатор} & shutdown -r -f -t 0
  • Вопрос задан
  • 38 просмотров
Пригласить эксперта
Ответы на вопрос 1
@AUser0
Чем больше знаю, тем лучше понимаю, как мало знаю.
Можно в цикле проходить по всему выводу bcdedit.exe (findstr убрать, разумеется), запоминать идентификатор в переменную, и при обнаружении Arch - запускать команду, с идентификатором из переменной. Разумеется придётся использовать SETLOCAL ENABLEDELAYEDEXPANSION.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы