2010-11-26 2 views
1

Ich versuche, eine Batch-Datei zu schreiben, um das JRE-Verzeichnis durch Abfragen der Registrierung zu finden.Für/f und REG QUERY Ausgabe und Klammern, versuchen, JRE zu Hause zu finden

Ich verwende REG QUERY, die die folgende Ausgabe zurückkehrt:

HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\JavaSoft\Java RuntimeEnvironment\1.6 
JavaHome REG_SZ C:\Program Files (x86)\Java\jre6 

Im dann zu verwenden, versuchen FOR/F den Wert Javahome wie unten zurück:

FOR /F "usebackq skip=2 tokens=3*" %%B IN (`REG QUERY "%JAVA_VERSION%" /v %JAVA_HOME_NAME% 2^>nul`) DO (
echo %%B) 

Problem ist dies gibt nur c: \ Programme zurück. Zuerst dachte ich, das ist in Ordnung, ich brauche nur das nächste Token, da es auf dem folgenden Platz aufgeteilt ist, aber das funktioniert nicht, also nehme ich an, dass es die Klammern sind, dass ist das Problem.

Frage ist, wie kann ich den Java-Pfad erfolgreich aus der Reg-Abfrage-Ausgabe abrufen?

Antwort

0

Ermittelt, ich missverstanden Verwendung der Tokens-Parameter. 3 * gibt für jedes gefundene Token fortlaufend benannte Parameter zurück. In diesem Fall musste ich auf %% B und %% C zugreifen, um den vollständigen Pfad zu erhalten.