Ich muss meinen Klassenpfad mit allen Gläsern in einem bestimmten Verzeichnis festlegen. Bash tut es wie folgt:Wie erhalte ich Variablen in Batch-Skripten, wenn sie in "for" -Schleifen gesetzt sind?
CP_DELIMITER=;
for j in "$MY_HOME/javalib/*.jar"; do
if [ "$CP" ]; then
CP="$CP$CP_DELIMITER$j"
else
CP="$j"
fi
done
Aber "for
" funktioniert anders in DOS und sendet im Wesentlichen den Befehl an die Schale, aber nicht die "set" auf die Variable
set CP=./
for %%j in (%MY_HOME%\javalib\*.jar) do (
set $CP=%CP%;"%%j"
)
bewahren Wenn Sie $CP
außerhalb der für fragen, erhalten Sie nur die letzte JAR-Datei. Wenn Sie innerhalb von echo echo, können Sie sehen, dass %%j
hat alle Werte.
Hat jemand eine Lösung gefunden?
Große, das funktioniert, und eine Alternative zu/V auf der Kommandozeile ist: SETLOCAL ENABLEDELAYEDEXPANSION –