2016-02-05 65 views
1

所以 奇怪的事情今天happend。我正在編寫一些* .bat,它編輯了一些註冊表值。 只是爲了舉例來說,假設該命令是這樣的:無法編輯通過BAT文件,但命令行登記工作正常

@ECHO ON 
REG add "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer" /v "NoPreviewPane" /t REG_DWORD /d "2" /f 
PAUSE 

如果I型(膏)這對提高CMD,它的作品,因爲它應該。 但是,如果我創建一個* .bat文件與該命令並運行它: - 以管理員身份運行:CMD打開和關閉,並沒有任何反應 - 正常運行:「訪問被拒絕」 - 這是確定的,因爲從CMD編輯要求管理員權限,afaik。

任何想法可能是錯的?

+0

我在命令後暫停,這不是問題。 哪條路徑 - HKEY路徑?是的,這是正確的。我說過,當我將它粘貼到CMD中時,同樣的命令可以工作,但不能從BAT文件運行...也沒有任何其他REG相關的命令。 – 0v3rl0rd

+0

路徑命令。如果你有暫停,那麼你爲什麼沒有發佈輸出。 –

+2

問題標題給出了一個錯誤的想法,即具有.BAT擴展名的文件不起作用,但擴展名爲.CMD的文件正常工作。這很混亂。我建議你改變「但CMD正常工作」,但「命令行工作正常」。 – Aacini

回答

0

64位操作系統?你正在使用哪個CMD.exe?是的......有一個32位和64位的!您可能正在寫入HKEY_CURRENT_USER \ Software ...以及在另一種情況下寫入HKEY_CURRENT_USER \ Software \ Wow6432Node。 REG添加/?如果在64位操作系統上,並且您將看到指定註冊表的32/64位區域的參數。

否則增加您的REG ADD和暫停後前行線線路@ECHO,看看是否有錯誤消息。

+0

我編輯了OP中的代碼。在蝙蝠本身有「@echo on」和「暫停」命令。正如我之前所說的:當我以管理員身份運行它時,cmd會打開並立即關閉。 – 0v3rl0rd

1

HKEY_CURRENT_USER改變當前用戶改變(即管理員)。

您需要將腳本寫入HKEY_CURRENT_USERS的相關子鍵 - 請注意末尾的S。 (請參閱here瞭解更多關於此的內容。)

+0

我的機器上只有一個用戶 - 我(管理員)。所以不會有某種用戶改變發生。 – 0v3rl0rd

1

因此,經過一夜的研究,我找到了解決方案this。我重置註冊表權限,如鏈接所示。之後,問題消失了。

相關問題