Warum sind meine set-Befehle wodurch nichts immer gespeichert?
Ich versuche, Zugriff auf den Wert von TOMCAT_VER später auf, aber es erscheint als eine leere Zeichenfolge.
if exist "%_REALPATH%\tomcat-%TOMCAT_VER2%" (
set CATALINA_HOME=%_REALPATH%\tomcat-%TOMCAT_VER2%
set TOMCAT_VER=%TOMCAT_VER2%
echo "%TOMCAT_VER%"
) else if exist "%TOMCAT_VER2%" (
set CATALINA_HOME="%TOMCAT_VER2%"
set TOMCAT_VER="%TOMCAT_VER2%"
echo "%TOMCAT_VER%"
)
Weiter zu Debuggen, habe ich eingefügt, eine echo-Anweisung rechts unten, wo wird es eingestellt, aber es scheint nicht zu funktionieren. Mit echo off deaktiviert, kann ich die Anweisung sehen, die zeigen diese Variablen immer gesetzt, und doch kann ich nicht scheinen, um zu drucken Sie Sie aus.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Finden Sie die bbb (batch-Anfänger-Fehler), nicht aber die variable ist leer, es ist die Erweiterung, die funktioniert nicht wie erwartet.
Prozent-expansion wird durchgeführt, wenn eine Zeile oder eine komplette Klammer-block geparst wird, bevor der code ausgeführt werden soll.
Aber um dieses Problem zu lösen Sie können das verzögerte Erweiterung, diese nicht erweitern zu parse-Zeit, es dehnt sich nur an der Ausführung.