在cmd(bat文件)中运行reg命令?

use*_*989 47 windows registry cmd batch-file

我正在尝试在cmd(bat文件)中运行此reg代码,但我无法使其工作.我哪里做错了?

[HKEY_CURRENT_USER\Software\Policies\Microsoft\Internet Explorer\Control Panel]
"HomePage"=dword:00000001
Run Code Online (Sandbox Code Playgroud)

如果我将它作为一个reg文件并双击,它就可以工作.

Bat文件代码(这不起作用,没有错误):

@echo off
reg add "HKCU\Software\Policies\Microsoft\Internet Explorer\Control Panel" /V HomePage /T REG_DWORD /F /D 1
Run Code Online (Sandbox Code Playgroud)

Gol*_*rol 62

导入reg文件时,您可能会收到UAC提示.如果您接受,那么您拥有更多权利.

由于您要写入"政策"密钥,因此您需要拥有提升的权限.此部分注册表受到保护,因为它包含由系统管理员管理的设置.

或者,您可以尝试regedit.exe从命令提示符运行.

regedit.exe /S yourfile.reg
Run Code Online (Sandbox Code Playgroud)

..应该默默导入reg文件.有关更多命令行选项,请参阅RegEdit命令行选项语法.

  • 运行 regedit.exe /S yourfile.reg 是个坏主意,因为如果出现错误,您将不会收到通知。请参阅下面的答案。 (3认同)
  • 不会有任何UAC问题,他正在向HKCU写信. (2认同)

Noa*_*nos 48

在命令行中,最好使用REG工具而不是REGEDIT:

REG IMPORT yourfile.reg
Run Code Online (Sandbox Code Playgroud)

REG专为控制台模式而设计,而REGEDIT则用于图形模式.这就是为什么运行regedit.exe/S yourfile.reg是一个坏主意,因为如果有错误将不会收到通知,而REG工具将提示:

>  REG IMPORT missing_file.reg

ERROR: Error opening the file. There may be a disk or file system error.

>  %windir%\System32\reg.exe /?

REG Operation [Parameter List]

  Operation  [ QUERY   | ADD    | DELETE  | COPY    |
               SAVE    | LOAD   | UNLOAD  | RESTORE |
               COMPARE | EXPORT | IMPORT  | FLAGS ]

Return Code: (Except for REG COMPARE)

  0 - Successful
  1 - Failed

For help on a specific operation type:

  REG Operation /?

Examples:

  REG QUERY /?
  REG ADD /?
  REG DELETE /?
  REG COPY /?
  REG SAVE /?
  REG RESTORE /?
  REG LOAD /?
  REG UNLOAD /?
  REG COMPARE /?
  REG EXPORT /?
  REG IMPORT /?
  REG FLAGS /?
Run Code Online (Sandbox Code Playgroud)

  • 我认为问题是如何"在cmd(bat文件)中运行reg命令?".搜索答案的人会来到这里......所以我建议他们用另一种方法在CMD中导入注册表.这肯定比Regedit好. (10认同)
  • 这不是坏建议,但它不是这个特定问题的答案.(OP说:"我正在尝试使用reg,为什么它不起作用"所以"你应该使用reg而不是regedit"是一个不合理的).乍一看,看起来好像你回答了接受的答案而不是问题?它可能应该作为评论发布,而不是作为答案. (3认同)

Dav*_*ann 8

如果内存服务正确,则该reg add命令将不会创建整个目录路径(如果它不存在).这意味着如果任何父注册表项不存在,则必须逐个手动创建它们.我知道这真烦人! 例:

@echo off
reg add "HKCU\Software\Policies"
reg add "HKCU\Software\Policies\Microsoft"
reg add "HKCU\Software\Policies\Microsoft\Internet Explorer"
reg add "HKCU\Software\Policies\Microsoft\Internet Explorer\Control Panel"
reg add "HKCU\Software\Policies\Microsoft\Internet Explorer\Control Panel" /v HomePage /t REG_DWORD /d 1 /f
pause
Run Code Online (Sandbox Code Playgroud)

  • 如果它说'权限被拒绝'那么`reg add`需要以管理员身份运行.你也很可能从我的例子中删除前两个reg add语句,因为它们几乎总是存在.有关授予管理员权限的批处理方法,请参阅此处的帖子:http://stackoverflow.com/a/13869544/891976 (5认同)
  • 以下在我的Windows XP SP3机器上成功运行:`reg add hkcu\software\aaa\aaa/ve/t reg_sz`.在运行命令之前,"aaa"都不存在,两者都是用它创建的.所以它更可能是一个许可问题. (4认同)