[英]Access unknown folder in a Batch file
我需要指定Java文件夹才能使用Sikuli。 问题是:该文件夹根据其版本具有不同的名称
如何在不知道jre1.8.0_60
部分的情况下在批处理文件中使用C:\\Program Files (x86)\\Java\\jre1.8.0_60\\bin\\java.exe
。 我需要某种通配符。 在C:\\Program Files (x86)\\Java\\
中,只有我需要的文件夹。
我希望很清楚我在寻找什么。 找不到与Google相关的任何内容,因为我不确定如何调用。
提前致谢
Java主目录通常在环境变量JAVA_HOME
。
因此,您应该可以使用:
"%JAVA_HOME%\bin\java.exe"
(使用"
来防止路径中的空格出现问题)
实际上,我的计算机上未定义%JAVA_HOME%
。 如果不在您的计算机上,或者不想使用它,则可以递归搜索%PROGRAMFILES(x86)%\\java
以查找具有最高创建日期的java.exe
。
@echo off
setlocal enabledelayedexpansion
:: find newest java.exe
<NUL set /P "=Searching for Java executable... "
for /f "delims=" %%I in ('dir /s /b "%PROGRAMFILES(x86)%\java\*java.exe"') do (
set "jtest=%%I"
for /f "tokens=2 delims=.=" %%a in (
'wmic datafile where "name='!jtest:\=\\!'" get CreationDate /format:list ^| find "="'
) do (
set "created_test=%%a"
set "created_test=!created_test:~0,-4!"
)
if not defined created (
set "javaexe=!jtest!"
set "created=!created_test!"
) else if !created_test! gtr !created! (
set "javaexe=!jtest!"
set "created=!created_test!"
)
)
if not defined javaexe (
echo Not found. Is Java installed?
goto :EOF
) else (
setlocal disabledelayedexpansion & echo Found! & endlocal
echo !javaexe!
echo Relax and enjoy the show.
)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.