【发布时间】:2015-08-29 14:44:19
【问题描述】:
如何找到 java 版本并将其设置为变量?
我试过这个:
for /f "tokens=*" %%a in ('java -version | find "version"') do (set var1=%%a)
但 java 并未将其输出重定向到 find。另一个帖子建议了这个解决方案
java -version 2>&1 | findstr "version" >tmp.txt
for /f "tokens=*" %%x in (tmp.txt) do (set var1=%%x)
echo %var1%
del tmp.txt
但我想避免使用临时文件。
【问题讨论】:
-
如果记忆正确,我认为你必须像
^|这样在第一个例子的情况下转义管道第二个有什么问题? -
第一个,变量没有建立,不显示echo %var1%¿第二个有效,但我必须使用 find。
-
for /f "tokens=*" %%a in ('java -version ^| find /I "version"') do (set var1=%%a)对find和findstr也给出相同的结果。 @Gary 把这个作为答案,伙计...... -
@JosefZ 感谢您的确认。我用 Windows 已经有一分钟了,所以我不确定。
-
我可以固执地道歉,但我看不到 echo var1 的输出:for / f "tokens = *" %% a in ('java -version ^ | find / I "version"' ) do (set var1 = %% a) echo first output echo %var1% echo second output