Вытащить значение из реестра и вставить его в переменную
Здравствуйте,
Задача такая нужно вытащить значение из куста реестра HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon а там то что вбито в параметре shell нужно вставить в переменную и выввести в консоль. |
Код:
@Echo Off |
Petya V4sechkin,
спасибо то что нужно. |
а как сделать проверку, есть ли в этой ветке ключа shell нету, тогда ставим паузу, а если ключ существует тогда выводим в консоль значение присвоенное этому ключу %shell%
|
Например, просто проверяя после запроса существование результирующей переменной окружения посредством «if defined …»:
Код:
@echo off |
Iska,
Спасибо всё работает. |
ППЦ, Что за фигня....
Код:
if defined DevID ( да кстати и из за моей тоже... и вот она Код:
мм думал из-за %~n0.vbs переименовал в file.vbs и тоже самое... |
root221, проблема с переменной «%0» в Quick Batch File Compiler (и не только в нём) известная.
Что-то недавно было на эту тему. Попробуйте посмотреть здесь: CMD/BAT - [решено] При конверте .bat в .exe не работают переменные. |
в общем пришлось сделать вот так %systemroot%\temp и всё заработало.
|
Цитата:
|
примерно так
Цитата:
|
Цитата:
|
а я где-то упоминал про обратный слеш или циркумфлекс?
и давайте открыто. покажите команду, которую запускаете без for в ком.строке, а еще лучше весь код с которым работаете, ну или эту проблемную часть или используйте переход в папку с программой чтобы уйти от проблемного пути Код:
cd /d "Путь к папке с программой" Код:
pushd "Путь к папке с программой" |
Andrey_Vladimirovich,
Код:
For /F "Tokens=2*" %%I In ('""reg.exe" Query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /V Shell"') Do Set Shell=%%J |
Цитата:
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 |
Как быть если искомый ключ (строковой параметр) реестра имеет имя с пробелами и двоеточием (Inno Setup: App Path)? Заключение в кавычки после /V имени параметра выдает помимо результата еще и мусор в виде REG_SZ App Path {искомое значение}
|
Цитата:
UPD: Цитата:
Цитата:
Код:
Tokens=5* |
Время: 00:43. |
Время: 00:43.
© OSzone.net 2001-