无法通过BAT文件编辑注册表,但命令行工作正常

时间:2016-02-05 23:17:38

标签: batch-file cmd registry command-prompt

所以 奇怪的事情发生在今天。我正在编写一些* .bat来编辑一些注册表值。 例如,假设命令是这样的:

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

如果我将其键入(粘贴)到提升的CMD,它就可以正常工作。 但是,如果我使用该命令创建一个* .bat文件并运行它:   - 以管理员身份运行:cmd打开和关闭,没有任何反应   - 正常运行:“拒绝访问” - 这没关系,因为从cmd编辑需要管理员权限,afaik。

任何想法都可能出错?

3 个答案:

答案 0 :(得分:1)

当前用户更改时,<{1>} 更改更改为管理员)。

您需要将脚本写入HKEY_CURRENT_USER的相关子键 - 请注意最后的 S 。 (有关详细信息,请参阅here。)

答案 1 :(得分:1)

所以,经过一夜的研究,我得到了this解决方案。我重置了注册表权限,如链接中所示。在那之后,问题就消失了。

答案 2 :(得分:0)

64位操作系统?您使用的是哪个CMD.exe?是的......有32位和64位!您可能在一种情况下写入HKEY_CURRENT_USER \ Software ...,在另一种情况下写入HKEY_CURRENT_USER \ Software \ Wow6432Node。 REG ADD /?如果在64位操作系统上,您将看到参数指定注册表的32/64位区域。

否则,在REG ADD和PAUSE之后的行上添加行@ECHO ON,然后查看是否有错误消息。