REG ADD игнорирует /f
Мой сценарий:
@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
Несмотря на включение /f
Мне всегда предлагается заменить запись. Как я могу получить команду REG ADD, чтобы не запрашивать и просто заменить запись?
1 ответ
Решение
Если вы запустите его как есть, вы увидите, что добавленная стоимость в реестр на самом деле 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