是否有可能修改通过的.bat / .CMD脚本中的注册表项?(Is it possible to m

2019-07-01 20:17发布

是否有可能修改注册表值(无论是字符串或DWORD)通过.BAT / .CMD脚本?

Answer 1:

您可以使用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)


Answer 2:

@Franci佩诺夫-修改可能的重写与感测/f ,例如

reg add "HKCU\Software\etc\etc" /f /v "value" /t REG_SZ /d "Yes"


Answer 3:

是的,你可以使用脚本的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 /? 有细节。



Answer 4:

这是你如何修改注册表,不用yes或no提示,不要忘记以管理员身份运行

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强制:强制的更新,而不提示“值存在,覆盖Y / N”

/ d数据:实际数据,以存储为“字符串”,整数等

/ V值:值名称,如PROGID

/ T数据类型:REG_SZ(默认)| REG_DWORD | REG_EXPAND_SZ | REG_MULTI_SZ

了解更多关于阅读,设置或删除注册表项和值,保存和恢复从一个.reg文件。 从这里



Answer 5:

你可以做一个.reg文件,并呼吁启动它。 您可以在注册表中的任何部分导出为.reg文件,看看格式是什么。

这里的格式:

http://support.microsoft.com/kb/310516

这可以在任何Windows机器上,无需安装其它软件运行。



Answer 6:

是。 您可以使用它自带的操作系统中添加,删除或查询注册表值REG.EXE。 REG.EXE没有明确的修改命令,但您可以通过删除,然后添加去做。



Answer 7:

除了REG.EXE,我强烈建议您还检查了PowerShell中,其浩大地更加能够在它的注册表操作。



Answer 8:

见http://www.chaminade.org/MIS/Articles/RegistryEdit.htm



文章来源: Is it possible to modify a registry entry via a .bat/.cmd script?