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

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

Ответить
Настройки темы
CMD/BAT - [решено] Вытащить значение из реестра и вставить его в переменную

Аватара для root221

Старожил


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

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


Изменения
Автор: root221
Дата: 27-02-2012
Здравствуйте,

Задача такая

нужно вытащить значение из куста реестра HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon а там то что вбито в параметре shell нужно вставить в переменную и выввести в консоль.

Отправлено: 21:37, 26-02-2012

 

Ветеран


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

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


примерно так
Цитата Andrey_Vladimirovich:
... In ('"Вместо Reg.exe с пробелами" ключи "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" ключи ') Do ...»
Это сообщение посчитали полезным следующие участники:

Отправлено: 15:03, 15-07-2021 | #11



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

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


Пользователь


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

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


Цитата alpap:
примерно так
Цитата Andrey_Vladimirovich:
... In ('"Вместо Reg.exe с пробелами" ключи "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" ключи ') Do ...» »
alpap, имеете в виду, просто заключить полный путь файла в двойные кавычки? Если да, то так я конечно пробовал, получаю ошибку: "Системе не удается найти указанный путь.". Так \"Reg\" пробовал и так ^"Reg^". Второй вариант работает только без "For".

Отправлено: 15:34, 15-07-2021 | #12


Ветеран


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

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


а я где-то упоминал про обратный слеш или циркумфлекс?
и давайте открыто.
покажите команду, которую запускаете без for в ком.строке, а еще лучше весь код с которым работаете, ну или эту проблемную часть
или используйте переход в папку с программой чтобы уйти от проблемного пути
Код: Выделить весь код
cd /d "Путь к папке с программой"
:: код
или
Код: Выделить весь код
pushd "Путь к папке с программой"
:: код
popd

Отправлено: 19:21, 15-07-2021 | #13


Старожил


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

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


Andrey_Vladimirovich,
Код: Выделить весь код
For /F "Tokens=2*" %%I In ('""reg.exe" Query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /V Shell"') Do Set Shell=%%J
Это сообщение посчитали полезным следующие участники:

Отправлено: 19:23, 15-07-2021 | #14


Пользователь


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

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


Цитата alpap:
а я где-то упоминал про обратный слеш или циркумфлекс? »
Честно говоря, не понял о чем вы?

iglezz, вы меня опередили, только писал сообщение и пришло уведомление о вашем ответе. В документации написано: "Наконец, команда FOR /F позволяет разобрать выходные данные другой команды. Для этого следует использовать в качестве параметра в скобках строку в обратных одиночных кавычках.". Если их использовать, тогда необходимо добавить usebackq.
Вот эти два варианта работают:
Код: Выделить весь код
For /F "Tokens=2*" %%I In ('"Reg Query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /V "Shell""') Do Set Shell=%%J
For /F "usebackq Tokens=2*" %%I In (`"Reg Query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /V "Shell""`) Do Set Shell=%%J
Всем спасибо за помощь.

Отправлено: 19:37, 15-07-2021 | #15


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


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

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


Как быть если искомый ключ (строковой параметр) реестра имеет имя с пробелами и двоеточием (Inno Setup: App Path)? Заключение в кавычки после /V имени параметра выдает помимо результата еще и мусор в виде REG_SZ App Path {искомое значение}

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


Аватара для NickM

Ветеран


Contributor


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

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


Цитата Stealch:
Как быть если »
Описать внятно то, что Вы хотите получить - указать полный путь к ключу и что хотите с этим ключом сделать.

UPD:
Цитата Stealch:
Inno Setup: App Path »
Если учесть, что в параметре добавилось 3 пробела, то в вышеуказанном коде достаточно заменить:
Цитата Andrey_Vladimirovich:
Код: Выделить весь код
Tokens=2*
»
на
Код: Выделить весь код
Tokens=5*

Последний раз редактировалось NickM, 26-03-2024 в 14:56.


Отправлено: 12:10, 26-03-2024 | #17



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - [решено] Как получить значение параметра из реестра, добавить значение в текстовый файл etc.? Dark Ange1 Скриптовые языки администрирования Windows 28 22-06-2022 14:37
CMD/BAT - [решено] Как вытащить путь из реестра и подставить его в нужное место? HuppeR Скриптовые языки администрирования Windows 15 15-10-2011 07:11
CMD/BAT - [решено] Новое значение, в новую переменную Devils0411 Скриптовые языки администрирования Windows 1 12-10-2010 00:52
как бы добавить в переменные имя ключа реестра и его значение ? mitiya Программирование и базы данных 21 23-04-2008 11:54
Как узнать переменную которой передается значение?? FADE Вебмастеру 2 30-06-2004 18:45




 
Переход