繁体   English   中英

访问批处理文件中的未知文件夹

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM