如何在BAT批处理启动脚本中传入版本号匹配Jar文件名
当然可以!给你的BAT脚本加版本参数就行
每次Jar包更新都要手动改脚本确实麻烦,其实只需要给BAT脚本添加命令行参数逻辑,就能实现启动时传入版本号、自动匹配对应Jar包的效果,下面分几种场景给你具体方案:
1. 基础版:直接接受命令行参数的脚本
这个版本适合你明确知道要启动哪个版本的场景,脚本会读取你传入的版本号来拼接Jar文件名:
@echo off setlocal enabledelayedexpansion :: 检查是否传入了版本号参数 if "%~1"=="" ( echo 请传入Jar包的版本号!示例:%~nx0 1.2.3 pause exit /b 1 ) :: 替换成你的Jar包前缀(比如你的Jar叫demo-app-1.0.0.jar,这里就写demo-app-) set JAR_PREFIX=myapp- :: 启动Java应用 java -jar %JAR_PREFIX%%1.jar :: 如果你需要指定特定JDK路径,可以改成这样: :: "C:\Program Files\Java\jdk17.0.8\bin\java.exe" -jar %JAR_PREFIX%%1.jar
运行方式
打开命令提示符,切换到Jar包所在目录,执行:
startapp.bat 1.0.5
脚本就会自动启动myapp-1.0.5.jar。
2. 进阶版:自动提示输入版本号(避免忘传参数)
如果经常忘了传参数,可以让脚本在没收到参数时主动提示你输入版本号:
@echo off setlocal enabledelayedexpansion set VERSION=%~1 :: 未传参数时,提示用户输入 if "%VERSION%"=="" ( set /p VERSION=请输入Jar包的版本号: :: 检查用户是否输入了有效内容 if "%VERSION%"=="" ( echo 版本号不能为空! pause exit /b 1 ) ) :: 启动应用 java -jar myapp-%VERSION%.jar
3. 额外小技巧:自动检测最新版本Jar包(不用传参数)
如果大部分时候你都想直接启动最新版本的Jar,还可以让脚本自动查找当前目录下的最新Jar文件:
@echo off setlocal enabledelayedexpansion :: 查找当前目录下前缀为myapp-的Jar文件,按名称排序(语义化版本号可正确识别先后) for /f "delims=" %%i in ('dir /b /o:n myapp-*.jar') do set LATEST_JAR=%%i if not defined LATEST_JAR ( echo 未找到任何myapp-*.jar文件! pause exit /b 1 ) echo 正在启动最新版本:!LATEST_JAR! java -jar !LATEST_JAR!
你可以根据自己的测试场景选择对应的方案:需要指定特定版本测试就用前两种,想快速启动最新版就用第三种。
内容的提问来源于stack exchange,提问作者DevelopingDeveloper
相关产品推荐
相关产品推荐

