Как извлечь часть вывода команды из cmd, для последующей обработки в другой команде?
Есть 2 команды, которые выполняются последовательно с участием человека:
bcdedit /copy {default} /d "Безопасный режим"
В cmd выводится сгенерированный id:
Запись успешно скопирована в {ac9972ad-9559-11ea-81fe-14dae9ab9c25}.
Так вот, нужно извлечь само выражение {ac9972ad-9559-11ea-81fe-14dae9ab9c25} из этого вывода и добавить ее в переменную для дальнейшего использования в следующей команде:
bcdedit /set %отобразившийся_GUID% safeboot minimal
Лучше, если возможно, без парсинга дополнительно созданного файла те
bcdedit /copy {default} /d "Безопасный режим" > file.txt
Возможно ли так сделать?
Ответы (1 шт):
Все равно парсить придется. Чисто технический вопрос, а какой файл придется парсить: обычный текстовый или STDOUT.
@for /f "delims={ tokens=2*" %%i in ('@bcdedit /copy {default} /d "Безопасный режим"') do @set guid=%%i
@set guid={%guid:~0,37%
@echo bcdedit /set %guid% safeboot minimal
Следует не забывать, что в приведенном примере батника (работающем от админа) нужно соблюдать требуемую кодировку при использовании кириллицы.