Войти

Показать полную графическую версию : [решено] Найти в реестре параметр и записать в переменную имя ветки в которой он находится


root221
22-11-2012, 22:32
Здравствуйте,


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

Iska
22-11-2012, 22:49
root221, что Вы подразумеваете под «именем куста»?

root221
22-11-2012, 23:04
root221, что Вы подразумеваете под «именем куста»? »
ну там есть имя ветки, наверно так будет правельнее

001
002
003 и.т.д

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

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

Foreigner
22-11-2012, 23:35
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"

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

Foreigner
23-11-2012, 00:15
root221, забыл goto:eof или exit /b после echo %regcust%

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

root221
23-11-2012, 00:18
root221, что Вы подразумеваете под «именем куста»? »

Вы для чего интересовались ? для себя? или вы что-то вы не поняли и хотели уточнить для того что-бы помочь мне?

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

Наверно из-за Семерки, у меня просто XP

Iska
23-11-2012, 02:16
нужно записать имя куста в котором оно наидено, »
root221, что Вы подразумеваете под «именем куста»? »
ну там есть имя ветки, наверно так будет правельнее »
Правильно будет — «раздел»: Основы работы с реестром Windows: Терминология (http://www.oszone.net/6176#term).

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

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

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

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

Как-то так.

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

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

root221
25-11-2012, 04:56
Отчего так? Что мешает? »

Да ничего не мешает, просто не хочу я, внедряться в него.

Iska
25-11-2012, 07:54
root221, ясно.




© OSzone.net 2001-2012