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

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

Ответить
Настройки темы
CMD/BAT - [решено] Найти в реестре параметр и записать в переменную имя ветки в которой он находится

Аватара для root221

Старожил


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

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


Здравствуйте,


Нужно найти в этой ветке
Код: Выделить весь код
hklm\system\currentcontrolset\control\class\{4D36E972-E325-11CE-BFC1-08002bE10318}
значение ключа, которое будет называться "VLanAdapter" и после того как наидено это значение, нужно записать имя куста в котором оно наидено, в переменную %RegCust%

Отправлено: 22:32, 22-11-2012

 

Ветеран


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

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


root221, что Вы подразумеваете под «именем куста»?

Отправлено: 22:49, 22-11-2012 | #2



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

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


Аватара для root221

Старожил


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

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


Цитата Iska:
root221, что Вы подразумеваете под «именем куста»? »
ну там есть имя ветки, наверно так будет правельнее

001
002
003 и.т.д

вот в одной из них если найдётся параметр с ключём "VLanAdapter", то имя ветки в которой скрипт найдёт параметр с ключём "VLanAdapter", надо записать в переменную %RegCust%

Iska, надеюсь что вы не просто так вопрос задали, а хотите мне помочь )

Последний раз редактировалось root221, 22-11-2012 в 23:27.


Отправлено: 23:04, 22-11-2012 | #3


Ветеран


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

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


root221,
Без проверки на ошибки, т.е. подразумевается, что свойство "VLanAdapter" есть в одном из параметров:
Код: Выделить весь код
@echo off
setlocal

set "regpath=hklm\system\currentcontrolset\control\class\{4D36E972-E325-11CE-BFC1-08002bE10318}"

for /f "tokens=*" %%i in (' reg query "%regpath%" /v "VLanAdapter" /s ') do call:set "%%i"
echo %regcust%

:set
if not defined regcust set "regcust=%~1"

Отправлено: 23:35, 22-11-2012 | #4


Аватара для root221

Старожил


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

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


Foreigner, странно, ставлю паузу после echo %regcust% и в консоль вываливается сообщение, Ошибка: Слишком много параметров в командной строке.

Отправлено: 00:03, 23-11-2012 | #5


Ветеран


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

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


root221, забыл goto:eof или exit /b после echo %regcust%

Цитата:
Ошибка: Слишком много параметров в командной строке.
Странно. У меня такой ошибки нет.

Отправлено: 00:15, 23-11-2012 | #6


Аватара для root221

Старожил


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

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


Цитата Iska:
root221, что Вы подразумеваете под «именем куста»? »
Вы для чего интересовались ? для себя? или вы что-то вы не поняли и хотели уточнить для того что-бы помочь мне?

Цитата Foreigner:
root221, забыл goto:eof или exit /b после echo %regcust%
Цитата:
Ошибка: Слишком много параметров в командной строке.
Странно. У меня такой ошибки нет. »
Наверно из-за Семерки, у меня просто XP

Отправлено: 00:18, 23-11-2012 | #7


Ветеран


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

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


Цитата root221:
Цитата root221:
нужно записать имя куста в котором оно наидено, »
Цитата Iska:
root221, что Вы подразумеваете под «именем куста»? »
ну там есть имя ветки, наверно так будет правельнее »
Правильно будет — «раздел»: Основы работы с реестром Windows: Терминология.

читать дальше »
Цитата root221:
Вы для чего интересовались ? для себя? или вы что-то вы не поняли и хотели уточнить для того что-бы помочь мне? »
Возможность помощи обусловлена пониманием. Понимание настоятельно требует одинакового употребления и восприятия информации (в первую очередь — терминов). Пока мы не прояснили, что Вы понимаете под «именем куста» — сама возможность выхода полезной информации от меня к Вам была равна нулю.


PowerShell:
Код: Выделить весь код
$sPath = "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Class\{4d36e972-e325-11ce-bfc1-08002Be10318}"

Get-ItemProperty -Path "Registry::$sPath\*" | `
    Where-Object -FilterScript {$_.VLanAdapter} | `
        Select-Object -Property @{Name="SubKey"; Expression = {($_.PSPath).Replace("Microsoft.PowerShell.Core\Registry::", "")}}, VLanAdapter | `
            Format-Table -AutoSize

Отправлено: 02:16, 23-11-2012 | #8


Аватара для root221

Старожил


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

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


Iska, Я вас понял, вы в большей степени специальзируетесь в PowerShell, к сожалению решения на PowerShell мне не подходит и всеравно я вам благодарен за участие и попытке помочь моей проблеме.

А вобще мне надо было, что бы CMD скрипт работал примерно так-же как macshift, т.е. по имени адаптера которое у меня будет находится в переменной, находил нужную ветку в реестре, которая относится к адаптеру с этим именем которое будет в переменной и изменял MAC Адрес тому устройству у которого будет имя из переменной т.е. просто добавлял ключ Macaddress с со значением которое тоже будет в переменной ну и потом с помощью другой утилитым DevCon которая у меня так-же имеется, перезапускал сетевое устройство и изменял на устройстве мак адрес которое например, с именем "VLanAdapter" .

Как-то так.

Отправлено: 21:15, 23-11-2012 | #9


Ветеран


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

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


Цитата root221:
Iska, Я вас понял, вы в большей степени специальзируетесь в PowerShell, »
Увы. Неспешно учусь (предыдущий пост как раз и есть — обучение) ему эдак пятый год, не меньше. У меня всё никак не возникнет настоятельной потребности к его изучению по причине отсутствия надобности.

Цитата root221:
к сожалению решения на PowerShell мне не подходит »
Отчего так? Что мешает?

Отправлено: 00:44, 24-11-2012 | #10



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Доступ - [решено] в реестре есть параметр нужно получить путь к программе которой он принадлежит Win XP Cool.q Microsoft Windows 2000/XP 16 04-05-2012 18:54
CMD/BAT - [решено] Записать имя папки в которой лежит батник в переменную а потом эту же папку переим. bobr95 Скриптовые языки администрирования Windows 8 10-04-2012 18:42
Интерфейс - При создании новой папки запускается программа, на которой находится фокус javajim Microsoft Windows 7 11 26-02-2011 12:13
Как создать переменную, имя которой такоеже как значение + несколько латин. символов? E-mail Вебмастеру 12 26-11-2005 10:14
Как узнать переменную которой передается значение?? FADE Вебмастеру 2 30-06-2004 18:45




 
Переход