【问题标题】:Set Java Major Version Number As A Variable将 Java 主要版本号设置为变量
【发布时间】:2015-03-15 16:21:10
【问题描述】:

这很烦人。如果 Java 的主要版本是 1.6、1.7 等,我正在尝试在脚本中合并一个触发器来运行。

在我尝试设置变量的行中,我提取 Java 版本并将其通过管道传递给标识的标记和分隔符,从而将“do”作为变量 %jver% 的设置命令。但是,回显 %jver% 会导致“回显已开启”。为什么不设置变量?在使用 %jver% 之前,一切看起来都是合法的。

是的,我将脚本的百分比加倍。这里的代码是在命令提示符下使用的。

下面是一行:

%systemroot%\system32\java.exe -version 2>&1 | for /f "tokens=1-4 delims=. " %a in ('findstr /i "version"') do (set jver=%~c.%d)

【问题讨论】:

    标签: java command version command-line-interface


    【解决方案1】:

    看起来这是postPatrick Cuff回答的问题

    这是从提到的原始帖子添加的解决方案

    @echo off
    setlocal
    
    set VERSION6="1.6.0_21"
    for /f "tokens=3" %%g in ('java -version 2^>^&1 ^| findstr /i "version"') do (
        @echo Output: %%g
        set JAVAVER=%%g
    )
    set JAVAVER=%JAVAVER:"=%
    @echo Output: %JAVAVER%
    

    【讨论】:

    • 我应该用这段代码指定我的意图;我希望单行或命令能够仅将版本的两个部分用于变量,或者如果安装了某个版本,则立即执行某些操作。不过,这能够帮助我从另一个角度看待它。谢谢你。您对我找到替代解决方案至关重要。尽管如此,我仍然感到困扰的是,尽管在使用变量之前我的原始命令看起来有效。
    • 你仍然可以在单行中使用它for /f "tokens=3" %%g in ('java -version 2^>^&1 ^| findstr /i "version"') do (set jver=%%g)
    • 确实有效。我希望能够相互独立地单独使用版本的每个部分。这样我就可以省略构建或根据需要使用它。
    • for /f "tokens=1-6 delims=._" %a in ('java -version 2^>^&1 ^| findstr /i "version"') 做 (SET JVER= %~c.%d.%f)
    【解决方案2】:

    @rao 感谢您帮助我找到满足我意图的替代解决方案。

    我的解决方法是以下行:

    for /f "tokens=1-4 delims=." %a in ('java -version 2^>^&1 ^| findstr /i "version"') 做 (SET JVER=%~c.%d )

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-02-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多