第一个问题,善待,我在12小时前开始阅读批处理文件。
我正在尝试编写一个批处理文件,每30分钟将一个命令传递给一个java jar文件。
我确信这必须是可能的,但我对蝙蝠文件的小经验并没有削减它。
这是我到目前为止所写的内容
@echo off
title Test Program
set /a count=0
start /B java -Xms2G -Xmx2G -jar minecraft_server.1.8.8.jar nogui
timeout /t 15 >nul
goto loop
:loop
set /a mark=30*count
set /a count=count+1
echo say Episode %count% Minute Mark %mark%
timeout /t 5 >nul
goto loop
为了比较,下面的批处理文件将启动并运行jar文件,如果我在命令提示符下键入命令,则jar文件会响应它们。
title run-minecraft
java -Xms2G -Xmx2G -jar minecraft_server.1.8.8.jar
pause
例如,如果我在执行时在第二个程序中键入“say hi”,则jar文件执行“say”命令,并且“hi”出现在游戏中。第一个程序在命令提示符中每五秒输出一次“说Episode ...”(我不想在测试期间等待半小时),但是没有执行say命令和所需的消息“Episode#Minute Mark# #“未显示在游戏中。
我认为问题在于我没有告诉命令提示符执行批处理文件写入的代码,但我不确定如何自动执行此操作。
很抱歉,如果这令人困惑,因为我没有使用正确的条款,但我不是程序员,也不知道更好。
答案 0 :(得分:0)
在您的简短批处理文件中,解决方案有效,因为Java命令在另一个命令行中打开,其中I / O插入Java应用程序中。
在新批处理中,使用start / b可以在没有命令行的情况下打开Java应用程序,因此没有I / O.
我不是很精通批量回答你的问题,但你需要的是找到如何重定向命令I / O,即控制输入(可能输出,但它无关紧要)这里是Java命令。
看起来this是一个好的开始。