2012-12-10 223 views
32

我想在cmd(bat文件)中运行这个注册码,但是我无法让它工作。我在哪里做错了?在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 
+0

是它打印出任何错误?添加'pause'作为bat文件的最后一行。 –

回答

42

导入.reg文件时,您可能会得到一个UAC提示。如果你接受,你有更多的权利。

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

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

regedit.exe /S yourfile.reg 

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

+2

不应该有任何UAC问题,他正在给HKCU写信。 –

+0

@harry是的,正确的。例如这个工程(homapage变更) REG添加“HKCU \ SOFTWARE \ MICROSOFT \ INTERNET EXPLORER \ MAIN”/ V“START PAGE”/ D“http://www.ask.com/”/ F – user198989

+1

我的错误。当然,政策关键是一个特例。 –

6

如果内存服务正确,那么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 
+0

谢谢。但它说“权限被拒绝” – user198989

+4

如果它说“权限被拒绝”,那么“reg add”需要以管理员身份运行。你也可以从我的例子中删除前两个reg add语句,因为它们几乎总是存在的。有关授予管理员权限的批处理方法,请参阅我的帖子:http://stackoverflow.com/a/13869544/891976 –

+3

以下在我的Windows XP SP3计算机上成功运行:'reg add hkcu \ software \ aaa \ aaa/ve/t reg_sz'。在运行命令之前,两个“aaa”都不存在,并且都是用它创建的。所以这更可能是一个许可问题。 –

0

你也可以只创建一个组策略首选项,并让它为你创造了reg关键。 (没有脚本参与)

30

在命令行中,最好使用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 /? 
+1

这并不是坏建议,但它不是这个特定问题的答案。 (OP说:“我正在尝试使用reg,为什么它不起作用”,所以“你应该使用reg而不是regedit”是一个非限制性的)。乍一看,它看起来好像你是在回答接受的答案,而不是回答这个问题?它可能应该作为评论张贴,然后,而不是作为答案。 –

+7

我想问的是如何“在cmd(bat文件)中运行reg命令?”。搜索它的答案的人,将会到达这里......所以我建议他们以另一种方式在CMD中导入注册表。这绝对比Regedit好。 –