Ich habe ein Windows-Batch-Script-Problem, gegen das ich meinen Kopf breche (kein Wortspiel beabsichtigt). Die problematische Skript sieht wie folgt aus:Wie man PATH auf einen anderen Variablenwert mit Leerzeichen in der Windows-Batch-Datei setzt
if defined _OLD_VIRTUAL_PATH (
set PATH=%_OLD_VIRTUAL_PATH%
)
Wenn ich es laufen und _OLD_VIRTUAL_PATH
gesetzt ich:
\Microsoft was unexpected at this time.
_OLD_VIRTUAL_PATH
eine Variable, die ursprünglich aus PATH
gesetzt wurde und es Leerzeichen enthält - ich bin ziemlich sicher, das ist das Problem. Aber was ist die Lösung? Es wird erfolgreich ausgeführt, wenn ich es in Anführungszeichen eingeschlossen habe, aber ich denke nicht, dass der gesamte Wert der PATH
-Variable in Anführungszeichen gesetzt werden soll.
Wow - ich habe heute 2 Dinge gelernt ... Ich war mir sicher, dass diese Syntax in die Luft gehen würde, aber tatsächlich funktioniert es. Ich bin mir jedoch nicht sicher, warum es für Evgeny benötigt wird - das Setzen eines PATH mit Leerzeichen war für mich nie ein Problem, ohne Zitate zu verwenden. Vielleicht hat Evgenys '_OLD_VIRTUAL_PATH' ein anderes Sonderzeichen (außer einem Leerzeichen), das zitiert werden muss? –
@Michael: Es sind nicht die Räume, die das Problem sind. Ich schrieb den Beitrag um (hoffe, dass Chris nichts dagegen hat; er kann bei Bedarf zurückrollen) und erklärte, was falsch ist und warum. – Joey
Danke Johannes, ich habe den Grund vergessen, aber das ergibt durchaus Sinn. –