2012-12-10 228 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好。 –