0

我已经搜索了一段时间了,我不确定我是否只是没有使用正确的搜索词,或者答案是否真的很难找到。

我想做的是从批处理文件为游戏服务器创建一个新的 Windows 服务,然后让一个任务每 30 分钟或更长时间运行另一个批处理文件,该文件将在游戏服务器的命令行上运行两个命令并执行一些操作档案工作。

具体来说,我正在使用 Bukkit 为我帮助运行的游戏社区运行 Minecraft 服务器,并且我想确保事情始终处于运行状态,除非我明确告诉它停止(如服务)。Bukkit 直接从批处理文件运行,并在其上运行自己的命令行。

有人告诉我,您可以将这种类型的东西作为服务运行,但命令行将从视图和/或交互中隐藏。这是我查询的第二部分。我有一个方便的小备份.bat 文件,它将所有世界文件和用户数据文件复制到备份目录中,7zip 压缩它,然后删除该目录。唯一的问题是,Minecraft 喜欢始终打开并写入世界的区域文件,这意味着如果我直接运行它可能会导致地图损坏。作为补偿,我需要在服务器上运行命令“save-off”来暂时禁用文件挂钩,运行备份,一旦完成,运行“save-on”,这样游戏就可以继续而不会丢失数据.

关于第二个,我想知道的是,是否可以通过批处理文件与游戏服务交互,或者我是否需要创建一个应用程序来做到这一点?如果是后者,究竟是怎么做的呢?我有适度的 C++ 知识(通过我在大学的第二门 OO-C++ 课程),如果绝对必要的话,可以学习另一种语言。

因此,简而言之,有两个问题: 1. 是否可以以及如何将 BAT 文件作为 Windows 服务运行?2. 如何通过 BAT 文件与所述服务交互,如果不可能,我需要编写什么样的应用程序(重定向到或编写教程适合我)。

提前感谢您的任何帮助!

4

1 回答 1

0

老问题,用户帐户似乎不再在 SO 上处于活动状态,但是,嘿,如果您因为遇到类似问题而偶然发现此问题:

由于我们谈论的是 Bukkit Minecraft 服务器,因此请转到 Bukkit 的“Essentials”插件。它现在包括一个备份功能,该功能完全符合 OP 的要求,即停止保存,以便可以在不损坏的情况下操作文件,启动脚本,然后重新启动。

该脚本可以是一个备份(链接页面中提供的示例),但可以用于对世界上的文件运行任何操作。

于 2012-01-19T16:11:52.440 回答