REG ADD 忽略 /f

Kev*_*nes 3 windows regedit command-line-arguments

我的脚本:

@ECHO OFF

SET RegPath="HKEY_CURRENT_USER\Software\Microsoft\VBA\7.0\"

REG ADD "HKCU\Software\Microsoft\Windows\CurrentVersion\Applets\Regedit" /v LastKey /t REG_SZ /d "%RegPath%" /f

START RegEdit
Run Code Online (Sandbox Code Playgroud)

尽管包含/f,我总是被提示替换条目。如何让 REG ADD 命令不提示而只替换条目?

Ƭᴇc*_*007 5

如果按原样运行它,您会看到添加到注册表中的值实际上是HKEY_CURRENT_USER\Software\Microsoft\VBA\7.0" /f-- 包括一个孤立的引号,而/f这本来是作为一个单独的参数。

这里的问题是您通过变量本身添加了太多引号,更不用说在对变量的调用中了,因此它对Reg参数的开始和结束位置感到困惑。

删除所有这些无关的引号,它按预期工作:

@ECHO OFF

SET RegPath=HKEY_CURRENT_USER\Software\Microsoft\VBA\7.0\

REG ADD "HKCU\Software\Microsoft\Windows\CurrentVersion\Applets\Regedit" /v LastKey /t REG_SZ /d %RegPath% /f

START RegEdit
Run Code Online (Sandbox Code Playgroud)