对于 /f 和 REG QUERY 输出和括号,尝试查找 JRE 主目录

发布于 2024-10-04 12:49:26 字数 540 浏览 0 评论 0原文

我试图编写一个批处理文件来通过查询注册表来查找 JRE 目录。

我正在使用 REG QUERY,它返回以下输出:

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

然后我尝试使用 FOR /F 返回 JavaHome 值,如下所示:

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

问题是这仅返回 c:\Program Files。起初我认为这很好,我只需要下一个标记作为它在以下空间上的分割,但这不起作用,所以我假设问题出在括号上。

问题是,如何从 reg 查询输出中成功检索 java 路径?

Im trying to write a batch file to find the JRE directory by querying the registry.

I'm using REG QUERY which is returning the following output:

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

Im then trying to use FOR /F to return the JavaHome value as below:

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

Problem is this returns only c:\Program Files. At first i thought that's fine I just need the next token as its split on the following space but that doesnt work, so Im assuming it's the parentheses that's the problem.

Question is, how do I succesfully retrieve the java path from the reg query output?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

旧瑾黎汐 2024-10-11 12:49:26

想通了,我误解了 tokens 参数的用法。 3* 将为它找到的每个标记返回连续命名的参数,因此在这种情况下我需要访问:%%B 和 %%C 来获取完整路径。

Figured it out, I misunderstood usage of the tokens parameter. 3* will return consecutively named parameters for each token it finds so in this case i needed to access: %%B and %%C to get the full path.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文