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

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

Ответить
Настройки темы
CMD/BAT - [решено] Как найти строку в блоке вывода bat, но вставить другую?

Аватара для Mancoffee

Старожил


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


Конфигурация

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


Есть вывод команды 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

 

Аватара для NickM

Ветеран


Contributor


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

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


Цитата Mancoffee:
ПС. Так даже вообще уже ничего не находит. Тот же Arch уже не видит. »
Возможно, что Вы просто не сохранили файл сценария, а весь остальной код у вас закомментирован.

Работа сценария Мною проверяется, прежде чем код публикуется на форуме.

Отправлено: 19:21, 25-10-2024 | #51



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

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


Аватара для Mancoffee

Старожил


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

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


Цитата NickM:
Возможно, что Вы просто не сохранили файл сценария, а весь остальной код у вас закомментирован. »
Не, всё норм, это автосохранение при потере фокуса, если посмотрите, то жёлтая полосочка на вкладке - это не сохранено, когда щёлкнул по панели задач, то он исчезла - это автосохранение.
Цитата NickM:
Работа сценария Мною проверяется, прежде чем код публикуется на форуме. »
Я ж ничего не говорю, я к тому, что "магия" какая-то. Даже не знаю, что может быть не так.

Кстати и оно логично, что не находит, потому что команда bcdedit /enum выводит только данные о текущей ОС, а с firmware все записи. добавил соответствующий параметр и уже находит и Arch, и ubuntu и т.д., и даже UEFI OS нашло по одному только description.

Последний раз редактировалось Mancoffee, 25-10-2024 в 20:01.


Отправлено: 19:56, 25-10-2024 | #52


Аватара для NickM

Ветеран


Contributor


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

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


Цитата Mancoffee:
Кстати и оно логично, что не находит, потому что команда bcdedit /enum выводит только данные о текущей ОС, а с firmware все записи. »
Понятно.
Не придавал этому значения, т.к. располагаю наипростейшими загрузочными записями;

Цитата Mancoffee:
и даже UEFI OS нашло по одному только description. »
Ну, теперь выполняйте с параметрами из этого видео.

Отправлено: 20:05, 25-10-2024 | #53


Аватара для Mancoffee

Старожил


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

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


Цитата NickM:
Ну, теперь выполняйте с параметрами из этого видео.
Ну проверил парочку, вроде чётко всё, за что большое спасибо
Это сообщение посчитали полезным следующие участники:

Отправлено: 20:42, 25-10-2024 | #54


Аватара для NickM

Ветеран


Contributor


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

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


Цитата Mancoffee:
Ну проверил парочку, вроде чётко всё »
Вот и разобрались, на 6-ой странице темы

Отправлено: 20:52, 25-10-2024 | #55


Аватара для DJ Mogarych

fascinating rhythm


Moderator


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

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


Чисто для коллекции вариант на Powershell

Код: Выделить весь код
$bcdedit = (gc C:\temp\bcdedit.txt -raw -Encoding oem) `
-replace '^Приложение[\s\S]*?-{3,}|Приложение.*' -split '-{3,}' -replace '\s{5,}(?=\S)','=' -replace '\\','\\' |% {
    New-Object PSOBject -Property (ConvertFrom-StringData $_) |select идентификатор,device,path,description
}

$bcdedit

идентификатор                          device                             path                    description
-------------                          ------                             ----                    -----------
{08466ee1-90f9-11ef-a538-806e6f6e6963} partition=\Device\HarddiskVolume13 \EFI\UBUNTU\SHIMX64.EFI ubuntu
{58ec2b43-90b8-11ef-a537-806e6f6e6963} partition=H:                       \EFI\BOOT\BOOTX64.EFI   UEFI OS
{58ec2b44-90b8-11ef-a537-806e6f6e6963} partition=I:                       \EFI\BOOT\BOOTX64.EFI   UEFI OS
Код: Выделить весь код
($bcdedit |? description -eq ubuntu).идентификатор
{08466ee1-90f9-11ef-a538-806e6f6e6963}

-------
Powershell 7.x | Powershell 5.1 | ffmpeg (docs)

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

Отправлено: 06:38, 26-10-2024 | #56


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


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

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


Код: Выделить весь код
((sls 'description\s+ubuntu' C:\temp\bcdedit.txt -co 3,0).Context.PreContext | sls '{[0-9a-f-]+}').Matches.Value

Отправлено: 10:58, 27-10-2024 | #57



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Принтер - Каким образом можно вставить, лоток вывода бумаги С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




 
Переход