Страница 1 из 1

Как записать в реестр переменную типа REG_EXPAND_SZ

Добавлено: 06 июн 2016 02:30, Пн
UncleFather

Задача:

Необходимо из командной строки записать в реестр значение параметра типа REG_EXPAND_SZ.
Казалось бы, ничего сложного, однако, параметры типа REG_EXPAND_SZ в реестре отображаются в виде строки:

01.jpg

а в reg-файлах - представлены в 16-ричном виде:

02.jpg

Кроме того, необходимо записывать в реестр изменяемую строку, то есть передавать в реестр переменную. Но reg-файлы не позволяют выполнить эту задачу.

Решение:

В этих случаях на помощь приходит команда REG ADD.

Чтобы из командной строки записать в реестр 16-ричное значение ключа, например, в параметр типа «Расширяемая строка данных» (REG_EXPAND_SZ), можно воспользоваться командой

Так же она позволяет задавать какой-либо параметр при работе с реестром в качестве переменной. Например, если нам нужно из командной строки передать в реестр (для настройки путей к пользовательским папкам) имя пользователя, можно выполнить следующую команду:

Код: Выделить всё

REG ADD "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders"  /f /v "AppData" /t REG_EXPAND_SZ /d "\\SRV\Users\%Username%\Application Data"

REG ADD преобразует задаваемую ей строку в 16-ричный вид и, работая с интерфейсом командной строки, естественно, поддерживает все ее возможности, в том числе и работу с переменными. Так, задавая ей среди прочих параметров имя системной переменной %Username%, на выходе мы получим имя пользователя.