Я пытаюсь получить путь к ключу реестра JavaHome, и пока у меня есть это:
for /f "skip=2 tokens=3" %%x in ('reg query "HKLM\SOFTWARE\JavaSoft\%~1" /v CurrentVersion') do set JavaTemp=%%x
for /f "skip=2 tokens=3*" %%a in ('reg query "HKLM\SOFTWARE\JavaSoft\%~1\%JavaTemp%" /v JavaHome') do set JAVA_HOME=%%a %%b
echo %JAVA_HOME%
Примечание:% 1 может быть "JRE" или "JDK"
Ссылка: http://www.rgagnon.com/javadetails/java-0642.html
Однако при этом получаются только первые две части пути (%% a %% b), разделенные пробелами.Если в пути более одного пробела, он не сможет вывести весь путь.
Я не слишком разбираюсь в циклах for в Batch, поэтому мой вопрос: как мне получитьвсе токены найдены?(без необходимости делать %% a %% b ... %% z) Могу ли я как-нибудь использовать вложенный цикл for?
Сначала я думал, что могу просто сделать
set JAVA_HOME=%%*
Но это не работает.