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
Другие вопросы по тегам