Можно ли изменить значение реестра (будь то строка или DWORD) с помощью сценария .bat/.cmd?
Можно ли изменить запись реестра с помощью сценария .bat/.cmd?
Ответы (8)
Вы можете использовать команду REG. Из http://www.ss64.com/nt/reg.html:
Syntax:
REG QUERY [ROOT\]RegKey /v ValueName [/s]
REG QUERY [ROOT\]RegKey /ve --This returns the (default) value
REG ADD [ROOT\]RegKey /v ValueName [/t DataType] [/S Separator] [/d Data] [/f]
REG ADD [ROOT\]RegKey /ve [/d Data] [/f] -- Set the (default) value
REG DELETE [ROOT\]RegKey /v ValueName [/f]
REG DELETE [ROOT\]RegKey /ve [/f] -- Remove the (default) value
REG DELETE [ROOT\]RegKey /va [/f] -- Delete all values under this key
REG COPY [\\SourceMachine\][ROOT\]RegKey [\\DestMachine\][ROOT\]RegKey
REG EXPORT [ROOT\]RegKey FileName.reg
REG IMPORT FileName.reg
REG SAVE [ROOT\]RegKey FileName.hiv
REG RESTORE \\MachineName\[ROOT]\KeyName FileName.hiv
REG LOAD FileName KeyName
REG UNLOAD KeyName
REG COMPARE [ROOT\]RegKey [ROOT\]RegKey [/v ValueName] [Output] [/s]
REG COMPARE [ROOT\]RegKey [ROOT\]RegKey [/ve] [Output] [/s]
Key:
ROOT :
HKLM = HKey_Local_machine (default)
HKCU = HKey_current_user
HKU = HKey_users
HKCR = HKey_classes_root
ValueName : The value, under the selected RegKey, to edit.
(default is all keys and values)
/d Data : The actual data to store as a "String", integer etc
/f : Force an update without prompting "Value exists, overwrite Y/N"
\\Machine : Name of remote machine - omitting defaults to current machine.
Only HKLM and HKU are available on remote machines.
FileName : The filename to save or restore a registry hive.
KeyName : A key name to load a hive file into. (Creating a new key)
/S : Query all subkeys and values.
/S Separator : Character to use as the separator in REG_MULTI_SZ values
the default is "\0"
/t DataType : REG_SZ (default) | REG_DWORD | REG_EXPAND_SZ | REG_MULTI_SZ
Output : /od (only differences) /os (only matches) /oa (all) /on (no output)
@Franci Penov - изменение возможно возможно в смысле перезаписи с помощью /f
, например
reg add "HKCU\Software\etc\etc" /f /v "value" /t REG_SZ /d "Yes"
Да, вы можете написать скрипт с помощью команды reg
. Пример:
reg add HKCU\Software\SomeProduct
reg add HKCU\Software\SomeProduct /v Version /t REG_SZ /d v2.4.6
Это создаст ключ HKEY_CURRENT_USER\Software\SomeProduct
и добавит к этому ключу строковое значение "v2.4.6" с именем "Версия".
reg /?
есть подробности.
Вот как вы можете изменить реестр без подсказки «да» или «нет» и не забудьте запустить от имени администратора.
reg add HKEY_CURRENT_USER\Software\Microsoft\Windows\Shell\etc\etc /v Valuename /t REG_SZ /d valuedata /f
Ниже приведен реальный пример установки Internet Explorer в качестве браузера по умолчанию.
reg add HKEY_CURRENT_USER\Software\Microsoft\Windows\Shell\Associations\UrlAssociations\https\UserChoice /v ProgId /t REG_SZ /d IE.HTTPS /f
/f Force: Принудительное обновление без запроса «Значение существует, перезаписать Y/N»
/d Data: фактические данные для хранения в виде «строки», целого числа и т. д.
/v Значение: имя значения, например ProgId
/t Тип данных: REG_SZ (по умолчанию) | REG_DWORD | REG_EXPAND_SZ | REG_MULTI_SZ
Узнайте больше о чтении, установке или удалении ключей и значений реестра, сохранении и восстановлении из файла .REG. из здесь
Вы можете создать файл .reg и запустить его. Вы можете экспортировать любую часть реестра в виде файла .reg, чтобы увидеть формат.
Формат здесь:
http://support.microsoft.com/kb/310516
Его можно запустить на любом компьютере с Windows без установки другого программного обеспечения.
Да. Вы можете использовать reg.exe, который поставляется с ОС, для добавления, удаления или запроса значений реестра. Reg.exe не имеет явной команды изменения, но вы можете сделать это, выполнив удаление, а затем добавив.
В дополнение к reg.exe я настоятельно рекомендую вам также проверить powershell, он гораздо более эффективен в работе с реестром.
Set-ExecutionPolicy
. У меня есть пакетный скрипт, который изменяет реестр, чтобы установить политику выполнения RemoteSigned. Преимущество заключается в том, что пользователь может включать и запускать сценарии PowerShell без ввода каких-либо команд. Они могут просто дважды щелкнуть командный файл.
- person M. Dudley; 12.04.2011