REG ADD Ignoriert / f

2135
Kevin Jones

Mein Skript:

@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 

Trotz der Aufnahme von /fwerde ich immer aufgefordert, den Eintrag zu ersetzen. Wie kann ich erhalten, dass der Befehl REG ADD den Eintrag nicht auffordert und nur ersetzt?

3
Versuchen Sie "reg import" zu verwenden. harrymc vor 7 Jahren 0

1 Antwort auf die Frage

4
Ƭᴇcʜιᴇ007

Wenn Sie es so ausführen, werden Sie feststellen, dass der Wert, der zur Registrierung hinzugefügt wird, tatsächlich ist HKEY_CURRENT_USER\Software\Microsoft\VBA\7.0" /f- einschließlich eines verwaisten Anführungszeichens, und der /fals separates Argument gedacht war.

Das Problem hierbei ist, dass Sie zu viele Anführungszeichen über die Variable selbst hinzufügen, ganz zu schweigen vom Aufruf der Variablen, und es ist verwirrend, Regwo Argumente beginnen und enden.

Entfernen Sie alle überflüssigen Anführungszeichen, und es funktioniert wie vorgesehen:

@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 
Vielen Dank. Zitate in Batch / Bash-Skripten sind wirklich das Einzige, was ich am meisten hasse. Andre Terra vor 7 Jahren 0
Argh! Das war irgendwie das Problem. Eigentlich waren es zwei getrennte Themen. Zum einen wurde der nachfolgende Backslash in der zweiten Zeile als Escape-Zeichen interpretiert. Ich brauche einen Satz von Anführungszeichen, wenn der Parameter / d Leerzeichen enthält. Dies ist, was ich mit dem funktioniert hat: SET RegPath = blah REG ADD ... / d "% RegPath%" / f Kevin Jones vor 7 Jahren 1