UncleFather » 06 июн 2016 02:30, Пн
Задача:
Необходимо из командной строки записать в реестр значение параметра типа REG_EXPAND_SZ.
Казалось бы, ничего сложного, однако, параметры типа REG_EXPAND_SZ в реестре отображаются в виде строки:
а в reg-файлах - представлены в 16-ричном виде:
Кроме того, необходимо записывать в реестр изменяемую строку, то есть передавать в реестр переменную. Но 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%, на выходе мы получим имя пользователя.
[b][size=150]Задача:[/size][/b]
Необходимо из командной строки записать в реестр значение параметра типа [b][i]REG_EXPAND_SZ[/i][/b].
Казалось бы, ничего сложного, однако, параметры типа [b][i]REG_EXPAND_SZ[/i][/b] в реестре отображаются в виде строки: [attachment=1]01.jpg[/attachment]
а в reg-файлах - представлены в 16-ричном виде: [attachment=0]02.jpg[/attachment]
Кроме того, необходимо записывать в реестр изменяемую строку, то есть передавать в реестр переменную. Но reg-файлы не позволяют выполнить эту задачу.
[b][size=150]Решение:[/size][/b]
В этих случаях на помощь приходит команда [b][i]REG ADD[/i][/b].
Чтобы из командной строки записать в реестр 16-ричное значение ключа, например, в параметр типа «Расширяемая строка данных» ([b][i]REG_EXPAND_SZ[/i][/b]), можно воспользоваться командой
[code]REG ADD[/code]
Так же она позволяет задавать какой-либо параметр при работе с реестром в качестве переменной. Например, если нам нужно из командной строки передать в реестр (для настройки путей к пользовательским папкам) имя пользователя, можно выполнить следующую команду:
[code]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"[/code]
[b][i]REG ADD[/i][/b] преобразует задаваемую ей строку в 16-ричный вид и, работая с интерфейсом командной строки, естественно, поддерживает все ее возможности, в том числе и работу с переменными. Так, задавая ей среди прочих параметров имя системной переменной [b][i]%Username%[/i][/b], на выходе мы получим имя пользователя.