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

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

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

Аватара для Mancoffee

Старожил


Сообщения: 402
Благодарности: 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

 

Аватара для Mancoffee

Старожил


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

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


Цитата NickM:
кодировке cp866 »
Ну это помню, всё нормально.

Отправлено: 14:48, 24-10-2024 | #21



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

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


Аватара для NickM

Ветеран


Contributor


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

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


Цитата Mancoffee:
Ну да, в принципе по device самый лучший вариант. »
Так, на ваших скринах же отчётливо видно, что этот самый device не уникальный, тогда, зачем за него цепляться?
Цитата NickM:
Как вариант, найти тот параметр, который будет отличаться в этих записях.
Т.е. опираться не на description , а на что-то другое и/ или комбинацию параметров; »

Отправлено: 14:57, 24-10-2024 | #22


Аватара для Mancoffee

Старожил


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

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


Цитата NickM:
Так, на ваших скринах же отчётливо видно, что этот самый device не уникальный, тогда, зачем за него цепляться? »
В смысле? Вот же уникальность - HarddiskVolume13
Ааа всё, я не обращал даже внимания, как так, одинаковые вольюмы ...

Так тогда не за что и цепляться, чтоб наверняка.

Отправлено: 14:59, 24-10-2024 | #23


Аватара для NickM

Ветеран


Contributor


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

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


Цитата Mancoffee:
Так тогда не за что и цепляться, чтоб наверняка. »
Подумайте.

Или покажите полный вывод записей bcdedit, возможно, что что-нибудь и можно будет придумать. какую-нибудь уникальную комбинацию.

Отправлено: 15:05, 24-10-2024 | #24


Аватара для Mancoffee

Старожил


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

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


Цитата NickM:
Или покажите полный вывод записей bcdedit, возможно, что что-нибудь и можно будет придумать. какую-нибудь уникальную комбинацию. »
Так тут нет над чем думать, всего-то четыре строки. На скринах и отдельным кодом, что до этого писал, это всё, что выдаёт.

Хотя чёт и с кодировкой не то, пишет вроде 866, но уже и тот вариант, что работал, уже не выдаёт ID, если echo приписать. Но если отключаю echo off, то в выводе нормальная кириллица, не кракозябры.

Отправлено: 15:07, 24-10-2024 | #25


Ветеран


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

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


Если проблема с запуском нужной ОС, наверное нужно добавить в код приоритет загрузки, типа
Код: Выделить весь код
bcdedit bootsequence {08466ee1-90f9-11ef-a538-806e6f6e6963} /addfirst

Отправлено: 15:16, 24-10-2024 | #26


Аватара для Mancoffee

Старожил


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

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


Цитата sov44:
Если проблема с запуском нужной ОС, наверное нужно добавить в код приоритет загрузки, типа »
Так дело не с приоритетом, а поиском в выводе.

Отправлено: 15:18, 24-10-2024 | #27


Аватара для NickM

Ветеран


Contributor


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

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


Цитата Mancoffee:
Так тут нет над чем думать, всего-то четыре строки. На скринах и отдельным кодом, что до этого писал, это всё, что выдаёт. »
Когда не располагаешь всей информацией, то приходиться догадываться.

Вот и пример Вам выше, пжлст. - совпадение параметра device у некоторых записей.

Имея на руках весь вывод, эту ситуацию можно было бы обыграть в едином сценарии.

Отправлено: 15:24, 24-10-2024 | #28


Аватара для Mancoffee

Старожил


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

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


Цитата NickM:
Имея на руках весь вывод, эту ситуацию можно было бы обыграть в едином сценарии. »
А, вы имеете ввиду полный список записей наверное ...
Скрытый текст
Код: Выделить весь код
C:\Users\BlagoYar > bcdedit /enum firmware                                                                            15:17:02

Диспетчер загрузки микропрограмм
---------------------
идентификатор           {fwbootmgr}
displayorder            {aeb141a2-50f0-11ef-a44e-806e6f6e6963}
                        {92ad53ef-4fe7-11ef-a43f-00158312706e}
                        {8a70e99e-ce5d-11ee-a239-806e6f6e6963}
                        {fce77d1c-542f-11ef-a47d-806e6f6e6963}
                        {92ad53f0-4fe7-11ef-a43f-00158312706e}
                        {9fd5c12a-7f25-11ef-a4ff-806e6f6e6963}
                        {bootmgr}
                        {08466ee1-90f9-11ef-a538-806e6f6e6963}
                        {58ec2b43-90b8-11ef-a537-806e6f6e6963}
                        {58ec2b44-90b8-11ef-a537-806e6f6e6963}
                        {cd433883-b798-11ed-9f7d-806e6f6e6963}
                        {ea6a5a16-d6bf-11ee-a255-806e6f6e6963}
                        {b9bff08e-56e2-11ef-a494-806e6f6e6963}
timeout                 1

Диспетчер загрузки Windows
--------------------
идентификатор           {bootmgr}
device                  partition=\Device\HarddiskVolume14
path                    \EFI\MICROSOFT\BOOT\BOOTMGFW.EFI
description             Windows Boot Manager
locale                  ru-RU
inherit                 {globalsettings}
flightsigning           Yes
default                 {current}
resumeobject            {e038f13c-daad-11ec-bbea-d45d64ba5434}
displayorder            {current}
toolsdisplayorder       {memdiag}
timeout                 1

Приложение микропрограммы (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

Приложение микропрограммы (101fffff)
-------------------------------
идентификатор           {8a70e99e-ce5d-11ee-a239-806e6f6e6963}
device                  partition=\Device\HarddiskVolume13
path                    \EFI\MICROSOFT\BOOT\BOOTMGFW.EFI
description             Windows 7

Приложение микропрограммы (101fffff)
-------------------------------
идентификатор           {92ad53ef-4fe7-11ef-a43f-00158312706e}
device                  partition=\Device\HarddiskVolume13
path                    \EFI\REFIND\REFIND_X64.EFI
description             rEFInd

Приложение микропрограммы (101fffff)
-------------------------------
идентификатор           {92ad53f0-4fe7-11ef-a43f-00158312706e}
device                  partition=\Device\HarddiskVolume13
path                    \EFI\EFISHELL\SHELLX64.EFI
description             UEFI Shell

Приложение микропрограммы (101fffff)
-------------------------------
идентификатор           {9fd5c12a-7f25-11ef-a4ff-806e6f6e6963}
device                  partition=\Device\HarddiskVolume7
path                    \EFI\Arch\grubx64.efi
description             Arch

Приложение микропрограммы (101fffff)
-------------------------------
идентификатор           {aeb141a2-50f0-11ef-a44e-806e6f6e6963}
device                  partition=\Device\HarddiskVolume14
path                    \EFI\BOOT\BOOTX64.EFI
description             Windows 10

Приложение микропрограммы (101fffff)
-------------------------------
идентификатор           {b9bff08e-56e2-11ef-a494-806e6f6e6963}
description             Network Card

Приложение микропрограммы (101fffff)
-------------------------------
идентификатор           {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


Цитата NickM:
какую-нибудь уникальную комбинацию »
Вот подумал, если можно, то сделать, что было два совпадения по device и description и если совпадают, тогда вставить ИД.
Не катит, там где нужно, вообще отсутствует device. если убрать букву диска.

Последний раз редактировалось Mancoffee, 24-10-2024 в 15:34.


Отправлено: 15:27, 24-10-2024 | #29


Аватара для NickM

Ветеран


Contributor


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

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


Цитата NickM:
Имея на руках весь вывод, эту ситуацию можно было бы обыграть в едином сценарии. »
Вот, на примере Вашего вывода - сравниваемые переменные передаются в сценарий в виде параметров:
Код: Выделить весь код
@echo off
setlocal enableextensions enabledelayedexpansion
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 "!DEV!":"!DESCR!" EQU %1:%2 (
echo."Start OS from device %1 and decription %2"
echo."bcdedit /set {fwbootmgr} bootsequence !ID!"
)
set "ID="
set "DEV="
set "PATH="
set "DESCR="
)
)
Скрытый текст

Отправлено: 16:30, 24-10-2024 | #30



Компьютерный форум 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




 
Переход