java 后台有两个jar包,如何用一个.bat文件实现定时器第一个小时启动第一个jar,第二个小时关闭第一个jar,启动第二个jar,每次实现启动1关闭2,启动2关闭1,你可以帮我写一个dingshiqi.bat文件来实现吗
时间: 2024-04-30 15:17:33 浏览: 7
可以的,以下是一个可能的实现方式:
```
@echo off
setlocal EnableDelayedExpansion
set jar1=first.jar
set jar2=second.jar
set currentJar=
:loop
set hour=%time:~0,2%
if %hour%==00 set hour=24
set /a mod=hour %% 2
if !mod!==0 (
if "!currentJar!" neq "!jar2!" (
echo Starting %jar2%...
start "" /B java -jar %jar2%
taskkill /F /IM %jar1%
set currentJar=!jar2!
)
) else (
if "!currentJar!" neq "!jar1!" (
echo Starting %jar1%...
start "" /B java -jar %jar1%
taskkill /F /IM %jar2%
set currentJar=!jar1!
)
)
ping -n 3601 127.0.0.1 >nul
goto loop
```
这个批处理文件使用了一个无限循环,每次循环中获取当前时间的小时数,并计算出取模2的结果,以此来判断是应该启动哪个Jar文件。如果当前Jar文件与应启动的Jar文件不一致,则先关闭当前的Jar文件,再启动应启动的Jar文件。为了实现定时器效果,每次循环结束前暂停1个小时(3600秒),然后重新开始循环。
需要注意的是,这个批处理文件的时间判断逻辑仅在小时数上进行,如果需要更加精确的时间判断,可以参考使用WMIC获取当前时间的方法。