Присвоить переменной командной строки значение из реестра

  • 09.06.2018
  • 7 399
  • 4
  • 08.03.2019
  • 10
  • 9
  • 1
Присвоить переменной командной строки значение из реестра

Присваиваем переменной командной строки значение переменной из реестра

Казалось бы такая простая вещь - получить значение ключа реестра, и задать его как значение переменной вашего bat/cmd скрипта, но оказалось все не так просто. Консольная утилита REG не может это проделать своими силами, поэтому приходиться пользоваться усложненными методами, вот один из них:

for /f "tokens=2*" %%a in ('REG QUERY "HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\futuremark\3dmark" /v install_path') do set "AppPath=%%~b"
echo %AppPath%
pause

Что делает этот скрипт?

Запускается цикл, который смотрит результат вывода команды REG QUERY, и присваивает возвращенное значение параметра install_path переменной AppPath.

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

Была ли эта статья Вам полезна?

Комментарии к статье (4)

    • di89

    А ну-ка господа, вытащите мне в переменную значение из HKLM\SOFTWARE\Microsoft\SQMClient\MachineId. Вот у меня никак не получается(((

    • for /f "tokens=2*" %%a in ('REG QUERY "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\SQMClient" /v MachineId') do set "MachineId=%%~b"
      echo %MachineId%
      pause

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

    • sunctorus

    HKEY_LOCAL_MACHINE ? Может, все-таки HKLM ?

    • HKLM это сокращенный вариант HKEY_LOCAL_MACHINE, и для многих программ (в том числе REG и REGEDIT) без разницы, в каком виде будет написано название данного раздела реестра.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Напоминаем Вам, что Ваше сообщение будет опубликовано только после проверки администратором сайта. Обычно это занимает 1-2 рабочих дня.