3

Мой сценарий:

@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 ответ1

4

Если вы запустите его как есть, вы увидите, что значение, добавленное в реестр, на самом деле является 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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .