我的批处理文件加载.jar后如何执行命令

时间:2019-08-01 17:51:23

标签: batch-file server jar minecraft

我有一个启动.jar文件的批处理文件,但是在完成加载.jar之后,它不执行之后运行的其他命令。

这是我的代码:

@echo off
title DWAD
color 0A
cls

:start
echo loading server...
java -Xms3G -Xmx20G -jar DWAD.jar nogui

echo "/say server will restart in 60 seconds"
TIMEOUT /T 30
echo /say server will restart in 30 seconds
TIMEOUT /T 10
echo /say server will restart in 10
TIMEOUT /T 1
echo /say 9
TIMEOUT /T 1
echo /say 8
TIMEOUT /T 1
echo /say 7
TIMEOUT /T 1
echo /say 6
TIMEOUT /T 1
echo /say 5
TIMEOUT /T 1
echo /say 4
TIMEOUT /T 1
echo /say 3
TIMEOUT /T 1
echo /say 2
TIMEOUT /T 1
echo /say 1
TIMEOUT /T 1
echo /say server restarting

在.jar完成加载后,如何指示代码运行下一个命令“ echo”?

谢谢!

我尝试在java -Xms3G -Xmx20G -jar DWAD.jar nogui之前使用调用命令而没有运气

我尝试在java -Xms3G -Xmx20G -jar DWAD.jar nogui之后使用/ wait命令也没有运气

我期望批处理文件在加载.jar之后运行下一行代码,但是结果是没有。批处理文件在加载.jar

后立即停止

1 个答案:

答案 0 :(得分:0)

OP希望编写Minecraft服务器脚本

我找到了我以前曾经做过的插件,它位于这里:

https://www.minecraftforum.net/forums/mapping-and-modding-java-edition/minecraft-tools/1263927-win-mac-linux-minecraft-console-client

这应该使他能够在操作系统上执行功能的同时,向服务器上的用户传递文本和命令,从而使他能够根据自己的意愿自动关闭服务器。

仔细检查后,看起来又像我八年前使用服务器时的样子,就像插件作者所说的那样:

  

•单个命令用法:MinecraftClient.exe用户名密码服务器   “ / mycommand”

     

这将自动将“ / mycommand”发送到服务器,然后   客户端将自动离开服务器并关闭。

     

在批处理命令发送脚本中很有用。

这会将您的脚本更改为以下内容:

#include <SFML/Graphics.hpp>

void doSomething(sf::RenderWindow& window) {
    sf::RectangleShape shape(sf::Vector2f(100, 100));
    shape.setFillColor(sf::Color::Green);
    shape.setPosition(50, 50);
    window.draw(shape);
    window.display();
}

int main() {
    sf::RenderWindow window(sf::VideoMode(500, 500), "Test", sf::Style::Close);
    while (window.isOpen()) {

    sf::Event event;
    while (window.pollEvent(event)) {
        if (event.type == sf::Event::Closed) {
            window.close();
        }
    }

    window.clear(sf::Color::Black);

    //draw here
    doSomething(window);
    }
    return 0;
}