REG ADD REG_SZ, wobei der Wert eingebettete doppelte Anführungszeichen enthält

REG ADD REG_SZ, wobei der Wert eingebettete doppelte Anführungszeichen enthält

Das macht mich wahnsinnig, aber es muss etwas ganz Einfaches sein. Ich versuche, einen ImagePath-Wert (REG_SZ) in einem Batch-Skript mit REG ADD hinzuzufügen, wobei die Wertdaten eingebettete „Anführungszeichen“ enthalten. Aber ich erhalte immer wieder die Fehlermeldung „Ungültige Syntax“. Dies ist der Wert, den ich hinzuzufügen versuche:

Key  : HKLM\SYSTEM\CurrentControlSet\Services\MSSQL$SQLEXPRESS
Value: ImagePath REG_SZ
Data : "C:\Program Files\Microsoft SQL Server\MSSQL11.SQLEXPRESS\MSSQL\Binn\sqlservr.exe" -sSQLEXPRESS 

Ich habe versucht, die Daten in einfache Anführungszeichen einzuschließen:

@SETLOCAL
@SET IPATH="C:\Program Files\Microsoft SQL Server\MSSQL11.SQLEXPRESS\MSSQL\Binn\sqlservr.exe" -sSQLEXPRESS
@REG.EXE ADD "HKLM\SYSTEM\CurrentControlSet\Services\MSSQL$SQLEXPRESS" /f /v ImagePath /t REG_SZ /d '%IPATH%'

Ich habe auch versucht, es in „doppelte Anführungszeichen“, Ausrufezeichen (!), [Klammern], \Backslashes\ und ^Caretzeichen^ einzuschließen, aber ich erhalte immer wieder den Syntaxfehler.

Irgendeine Idee, was ich falsch mache?

Antwort1

Der Parameter muss in doppelte Anführungszeichen gesetzt werden. Andere zufällig gewählte Satzzeichen (einfache Anführungszeichen, Ausrufezeichen, ...) funktionieren nicht.

Allerdings müssen Sie deminnereAnführungszeichen mit Backslashes:

@SET ImagePath=\"C:\Program Files\Microsoft SQL Server\MSSQL11.SQLEXPRESS\MSSQL\Binn\sqlservr.exe\" -sSQLEXPRESS
@REG.EXE ADD "HKLM\SYSTEM\CurrentControlSet\Services\MSSQL$SQLEXPRESS" /f /v ImagePath /t REG_SZ /d "%ImagePath%"

Hinweis 1: Um Werte in Cmd zuzuweisen, müssen Sie SET(wie in SET VAR=VALUE) verwenden.

Hinweis 2: Verwenden Sie diesen Namen nicht PATHals Variablennamen, da er bereits von Cmd zum Festlegen von Programmspeicherorten verwendet wird und das Überschreiben dazu führt, dass das Skript nicht mehr ausgeführt werden kann REG.EXE.

verwandte Informationen