You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何编写Bat脚本向运行中的Minecraft服务器CMD窗口发送保存关闭命令?

批量关闭Minecraft服务器的BAT脚本方案

要实现向运行中的CMD窗口发送stop命令(触发服务器保存并关闭),需要结合VBScript的窗口控制能力——纯BAT脚本无法直接向外部窗口输入命令。以下是具体实现步骤:

步骤1:修改启动脚本(指定窗口标题)

先给每个启动的CMD窗口设置唯一标题,方便后续精准定位。将你的启动脚本修改为:

cd "C:\Users\Administrator\Desktop"
start "Minecraft_HUB" Minecraft_HUB
start "Minecraft_LOBBY" Minecraft_LOBBY
start "Minecraft_SURVIVAL" Minecraft_SURVIVAL

注意:start后第一个带引号的字符串就是窗口标题,确保每个服务器的标题唯一。

步骤2:编写关闭脚本

新建Stop_MC_Servers.bat脚本,内容如下:

@echo off
setlocal enabledelayedexpansion

:: 定义需要关闭的服务器窗口标题列表,按空格分隔新增服务器
set "server_titles=Minecraft_HUB Minecraft_LOBBY Minecraft_SURVIVAL"

for %%t in (%server_titles%) do (
    echo 正在发送关闭命令到 %%t...
    echo Set WshShell = WScript.CreateObject("WScript.Shell") > send_temp.vbs
    echo WshShell.AppActivate "%%t" >> send_temp.vbs
    echo WshShell.SendKeys "stop{ENTER}" >> send_temp.vbs
    cscript //nologo send_temp.vbs
    del send_temp.vbs
)

:: 等待服务器完成保存和关闭,可根据服务器规模调整等待时间(单位:秒)
echo 等待服务器关闭...
timeout /t 15 /nobreak >nul
echo 所有服务器已触发关闭流程

脚本说明

  • 通过AppActivate定位到指定标题的CMD窗口
  • SendKeys "stop{ENTER}"模拟手动输入stop命令并回车,触发Minecraft服务器保存数据后关闭
  • timeout命令用于预留足够时间让服务器完成关闭操作,避免脚本提前结束

如果后续新增服务器,只需在server_titles列表里追加对应的窗口标题即可。

内容的提问来源于stack exchange,提问作者Felix

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 03:35:27