查询1
我有2个独立的java程序。
- MasterProgram.java - 由于数据量较大而长时间运行
- MailProgram.java - 用于每30分钟通过邮件发送日志文件
我使用单个batchScript程序来触发这两个java程序。
我的要求是,直到“MasterProgram.java”完成,每30分钟“MailProgram.java”必须运行,一旦“MasterProgram.java”完成“MailProgram.java”必须运行。
任何想法/替代解决方案都可以实现逻辑。
查询2(与上述查询无关):
我使用批处理脚本异步触发2个java程序。
myprogram.bat
@ECHO OFF
start /b java Mainprogram :: program1
start /b java MainprogramAnother :: program2
是否可以回显程序的%ERRORLEVEL%,如下所示?
myprogram.bat
@ECHO OFF
start /b java Mainprogram :: program1
start /b java MainprogramAnother :: program2
echo "Program1 errorlevel"
:: i am aware that below will not print program1 status.
:: Can you suggest the right code to display %ERRORLEVEL% this way..
echo %ERRORLEVEL%
echo "Program2 errorlevel"
echo %ERRORLEVEL%
如果有其他方式,请告诉我。
答案 0 :(得分:1)
好的,这是一个非常狡猾的解决方案,但为什么不试一试,看看它是否有效:
@echo off
start Side.bat
java MasterProgram.java
start java MailProgram.java
start taskkill /f /im cmd.exe
@echo off
:: Make sure 'MasterProgram.java' has properly started
sleep 5
:loop
start java MailProgram.java
sleep 1800
:: 1800 seconds = 30 minutes
goto loop
Main.bat
启动 side.bat
并在运行MasterProgram.java
之前等待MailProgram.java
执行。它以cmd.exe
。
Side.bat
每30分钟运行一次MailProgram.java
,直到taskkilled
Main.bat
为止。
它应该适合你。
至于你的第二个问题,只需将其存储在变量中即可。
@ECHO OFF
start /b java Mainprogram :: program1
set p1=%ERRORLEVEL%
start /b java MainprogramAnother :: program2
set p2=%ERRORLEVEL%
echo "Program1 errorlevel"
echo %p1%
echo "Program2 errorlevel"
echo %p2%