Bat script um java version zu ändern

Hallo, ich weiß ich bin hier vielleicht nicht an der 100% richtigen Anlaufstelle, aber da das Forum diesen Unterbereich hat und ich hier bis jetzt immer kompetente Hilfe bekam hier mal meine Frage:

Ich möchte mir gerne ein Skript schreiben, mit dem ich schnell und einfach meine Java Version, oder meine Python Version wechseln kann. Dafür habe ich eine Varibale JAVA_HOME angelegt die auf eine der Versionen zeigt und dann bei PATH %JAVA_HOME/bin hinzugefügt. Das klappt auch. Nun habe ich dieses bat-skript:


@ECHO OFF
echo "Choose java version"
set /p javaVer=[6/7]:

if "%javaVer%"== "" ( 
    echo "Syntax: (7):Java7 (6):Java6" 
    Goto :end
) 

if "%javaVer%" == "7" (
    echo "Setting JDK 7"
	cd C:\Program Files (x86)\Java
	for /d %%p in (jdk1.7*) do (
    setx JAVA_HOME "C:\Program Files (x86)\Java\%%p" -m
	echo %%p	
	pause
)
    
    GOTO :printver
) 

if "%javaVer%" == "6" (
    echo "Setting JDK 6"
   	cd C:\Program Files (x86)\Java
	for /d %%p in (jdk1.6*) do (
    setx JAVA_HOME "C:\Program Files (x86)\Java\%%p" -m
)
    GOTO :printver
)

:printver
echo %JAVA_HOME%
java -version

:end
pause


Das ganze klappt auch wenn ich anstatt dem ganzen Gedöns:


cd C:\Program Files (x86)\Java
	for /d %%p in (jdk1.6*) do (
    setx JAVA_HOME "C:\Program Files (x86)\Java\%%p" -m
)

einfach

setx JAVA_HOME "C:\Program Files (x86)\Java\jdk1.6.0_45" -m

schreibe. Da ich aber nicht immer das bat Skript anpassen will bei jeder neuen Version, wollte ich das so lösen. Wenn ich diesen Teil “outsource” in ein 2.tes skript funktioniert das ganze alleinstehend.

Daher meine Frage weiß jemand wie ich das Skript ans Laufen bekomme ?

2.te Frage bezüglich Python: Ich habe das hier komplett genauso aufgesetz. Also PYTHON_HOME und das dann zum PATH hinzugefügt, das Skript äquivalent zu dem Java Skript. Sofern das Skript irgendwann mal läuft, reicht das dann auch so für Python oder muss ich hier noch mehr in die Path Variable schreiben, wie zum Beispiel libs oder so ?

Vielen Dank !

Bin nicht ganz sicher, was du meinst. Willst du Werte von einer BAT an die andere übergeben? Das geht grundsätzlich einfach so

Main.BAT:


call SubBat SomeName

SubBat.BAT:


md First-%1
md Second-%1
md Third-%1

Ein Aufruf der Main.BAT ruft dann die SubBat.BAT auf, die die Verzeichnisse
First-SomeName
Second-SomeName
Third-SomeName
erststellt. Aber… irgendwie glaube ich, du meintest was anderes…!?

Hallo, nein das ist nicht ganz das was ich meine. Ich habe Java 6 und Java 7 gleichzeitig auf meinem Laptop installiert. Ich brauche nun ein Skript mit der ich die Umgebungsvariable so ändern kann, sodass ich zwischen diesen beiden Versionen immer hin und her wechseln kann. Mein Ansatz ist oben gepostetes Script. Für Python dasselbe: Hier habe ich Version 2 und 3 installiert und möchte diese per Skript schnell ändern können. Ich habe das Python Skript hier nur nicht gepostet, weil das äquivalent zum Java Skript ist. Wenn das läuft kriege ich das für Python auch so hin. Mein Ansatz beim Skript ist : 6 oder 7 eingeben. Wenn 6 eingegeben JAVA_HOME auf den Ordner ändern der mit jdk1.6.* beginnt, bei 7 auf jdk1.7.*.
Dann neue java -version ausgeben und Skript beenden.
Leider klappt das eben noch nicht so wirklich, und ich dachte einer von euch hat eine Idee wieso.

*** Edit ***

So es klappt nun. Der cd Befehl verträgt in einer bat anscheinend keine leerzeichen. Ich habe den Pfad mit “” umschlossen und nun klappts :slight_smile:

Der Wechsel in das Verzeichnis ist doch gar nicht notwendig. Ansonsten kann man das relativ schlicht halten.

@ECHO OFF

set InstallPath="C:\Program Files (x86)\Java"

echo "Choose java version"
set /p javaVer=[6/7]:

if %javaVer%==7 Goto valid
if %javaVer%==6 Goto valid

echo "Syntax: (7):Java7 (6):Java6" 
Goto :end

:valid
echo Setting JDK %javaVer%
for /d %%p in (%InstallPath%\jdk1.%javaVer%*) do (
	set JAVA_HOME=%%p
)

echo %JAVA_HOME%

:end
pause