我正在尝试让我的批处理打开另一个基于 cmd 的程序,等待一段时间,然后将一些命令输入到基于 cmd 的程序中,但找不到有关如何执行此操作的任何文档。这是迄今为止编写的批处理文件:
:loop
start java -Xmx8192M -Xms8192M -jar minecraftforge-universal-1.6.2-9.10.1.871.jar
timeout /t 300
save-all
stop
timeout /t 120
goto loop
基本上,程序运行然后在 300 秒后它应该保存然后关闭,然后等待 120 秒,然后循环。但是现在批处理将“save-all”和“stop”命令输入到自身而不是正在运行的程序中。我必须使用“start”命令在单独的实例中运行它,否则批处理永远不会运行以下任何命令。
答案1
也许您可以将命令通过管道传输到正在运行的程序中。您希望管道的左侧部分在回显命令之前等待。
:loop
(
timeout /t 300 /nobreak ^>nul^&echo save-all^&echo stop^&(call )
)|java -Xmx8192M -Xms8192M -jar minecraftforge-universal-1.6.2-9.10.1.871.jar
timeout /t 120 /nobreak
goto loop
这(call )
是执行无操作的快速方法。需要额外的命令来防止在命令末尾附加尾随空格stop
。
如果这不起作用,那么你绝对可以使用AutoIT 免费软件。