【问题标题】:Run reg command in cmd (bat file)?在cmd(bat文件)中运行reg命令?
【发布时间】:2012-11-28 09:24:33
【问题描述】:

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

[HKEY_CURRENT_USER\Software\Policies\Microsoft\Internet Explorer\Control Panel]
"HomePage"=dword:00000001

如果我把它变成一个reg文件并双击它就可以了。

bat文件代码(这个不行,没有错误):

@echo off
reg add "HKCU\Software\Policies\Microsoft\Internet Explorer\Control Panel" /V HomePage /T REG_DWORD /F /D 1

【问题讨论】:

  • 打印出任何错误吗?添加pause作为bat文件的最后一行。

标签: windows batch-file registry cmd


【解决方案1】:

在导入 reg 文件时,您可能会收到 UAC 提示。如果您接受这一点,您将拥有更多权利。

由于您正在写入“策略”键,因此您需要具有提升的权限。这部分注册表受到保护,因为它包含由系统管理员管理的设置。

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

regedit.exe /S yourfile.reg

.. 应该静默导入 reg 文件。有关更多命令行选项,请参阅RegEdit Command Line Options Syntax

【讨论】:

  • 应该没有任何 UAC 问题,他正在写信给 HKCU。
  • @harry 是的,正确。例如这个作品(homapage change) REG ADD "HKCU\SOFTWARE\MICROSOFT\INTERNET EXPLORER\MAIN" /V "START PAGE" /D "ask.com" /F
  • 运行 regedit.exe /S yourfile.reg 是个坏主意,因为如果出现错误,您将不会收到通知。请参阅下面的答案。
【解决方案2】:

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

REG IMPORT yourfile.reg

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 /?

【讨论】:

  • 我认为问题是如何“在 cmd(bat 文件)中运行 reg 命令?”。搜索它的答案的人会到达这里......所以我建议他们用另一种方法在 CMD 中导入注册表。它绝对比 Regedit 好。
【解决方案3】:

如果记忆正确,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

【讨论】:

  • 谢谢。但它说“权限被拒绝”
  • 如果显示“权限被拒绝”,则需要以管理员身份运行 reg add。您也很可能从我的示例中删除前两个 reg add 语句,因为它们应该几乎总是存在。有关授予管理员权限的批处理方法,请参阅我的帖子:stackoverflow.com/a/13869544/891976
  • 以下在我的 Windows XP SP3 机器上成功运行:reg add hkcu\software\aaa\aaa /ve /t reg_szaaas 在运行命令之前都不存在,并且都是用它创建的。所以这确实是权限问题。
【解决方案4】:

您也可以只创建一个组策略首选项并让它为您创建 reg 密钥。 (不涉及脚本)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-08-28
    • 1970-01-01
    • 2018-04-27
    • 1970-01-01
    • 2017-04-23
    • 1970-01-01
    • 2021-08-20
    • 2012-09-21
    相关资源
    最近更新 更多