对于 /f 和 REG QUERY 输出和括号,尝试查找 JRE 主目录
我试图编写一个批处理文件来通过查询注册表来查找 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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
想通了,我误解了 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.