Wie vergleichen wir Zeichenfolgen, die Speicherplatz und Sonderzeichen in der Batch-Datei enthalten?
Ich versuche:
if %DevEnvDir% == "C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\"(
echo VS2010
)
Es wird jedoch der Fehler "Dateien waren zu diesem Zeitpunkt unerwartet" angezeigt.
Ich habe es versucht:
if "%DevEnvDir%" == "C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\"(
echo VS2010
)
Es wird jedoch der Fehler "Die Syntax des Befehls ist falsch" angezeigt.
Irgendwelche Ideen?
windows
batch-file
dushyantp
quelle
quelle
if [%DevEnvDir%] == ["C:\..."]
. Link: stackoverflow.com/a/4953226/2428861Antworten:
Setzen Sie einfach Anführungszeichen um die Umgebungsvariable (wie Sie es getan haben):
if "%DevEnvDir%" == "C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\"
Aber es ist die Art und Weise, wie Sie die öffnende Klammer ohne ein Leerzeichen setzen, das sie verwirrt.
Funktioniert bei mir...
quelle
Während die Antwort von @ ajv-jsy die meiste Zeit funktioniert, hatte ich das gleiche Problem wie @MarioVilas. Wenn eine der zu vergleichenden Zeichenfolgen ein doppeltes Anführungszeichen (") enthält, gibt die Variablenerweiterung einen Fehler aus.
Beispiel:
Error:
Lösung:
Aktivieren Sie die verzögerte Erweiterung und Verwendung! Anstatt von %.
Ich konnte es bisher mit dieser Technik nicht brechen. Es funktioniert mit leeren Zeichenfolgen und allen Symbolen, die ich darauf geworfen habe.
Prüfung:
quelle
if /I
wenn Sie einen Zeichenfolgenvergleich ohne Berücksichtigung der Groß- und Kleinschreibung durchführen möchtenDie Lösung lautet: KEINE RAUME VERWENDEN!
quelle
if "%env%"=="xyz"<space>(