好的,所以我制作了一台Rust服务器。我用.bat
文件启动程序。 .bat
文件包含:
rust_server.exe -batchmode -hostname "XtraRust" -cfg "cfg/server.cfg" -maxplayers 25 -port 28015 -datadir "serverdata/" -map "rust_island_2013"
如何制作批处理文件以启动此操作并在2小时后关闭,然后再次启动程序并自动完成所有操作?
我尝试使用:
@echo off
:loop
start rust_server.exe
timeout /t 1200 >null
taskkill /f /im rust_server.exe >nul
goto loop
但它每0.25秒开始打开一次文件,这将导致计算机崩溃。
答案 0 :(得分:0)
我也有服务器。同样的问题。由于批处理忙于执行命令start rust_server.exe,因此只有一种方法可以在2小时后重新启动服务器。在手动重新启动服务器之前,它不会停止执行命令。执行此操作的唯一方法是另一个批处理文件。
@echo off
:loop
timeout /t <insert seconds here>
taskkill /im rust_server.exe
goto loop
唯一的问题是它可能会破坏服务器。我的服务器是Minecraft,你可以添加一个插件(或修改)来每2小时自动保存一次游戏。我不知道你是否可以修改生锈服务器的代码。但是,如果可以,请在新批处理文件重新启动服务器之前保存游戏。
打开服务器的批处理文件,请使用:
@echo off
color b9
mode 1000
:main
cls
rust_server.exe -batchmode -hostname "XtraRust" -cfg "cfg/server.cfg" -maxplayers 25 -port 28015 -datadir "serverdata/" -map "rust_island_2013"
大声笑我喜欢那些颜色。 “模式1000”使其全屏显示。
答案 1 :(得分:0)
您的批处理报告时没有明显的原因。
timeout
似乎失败了。它位于path
吗?它应该在标准安装的c:\windows\system32
中。
您正在输出timeout
到null
,这将创建一个名为null
的文件。输出l
设备的nul
太多rust_server.exe
。但这不应该引起你的问题。
你可以尝试
选择/ t 1200 / d y&gt; nul
应该有效地做同样的事情。
我很好奇您在批处理中调用rust_server.exe
- 没有参数,当您说您有一个批处理文件来调用带有参数的rust_server.exe.bat
时。你有没有机会调用那个文件task scheduler
,对吗?这不会导致问题 - 只是一个奇怪的想法。
我认为使用taskkill
来满足您的需求并没有真正的额外价值。您需要能够确保计划的作业在正确的凭据下运行 - 用户名,密码,权限和路径注意事项。然后,您需要将批处理安排到{{1}}现有服务器并开始新的服务器。
我受到了一个&#34;系统管理员&#34;的一小时以上的尖叫会话。谁声称无法开始计划任务是一个众所周知的&#34;世界上没有人能够解决的问题&#34;。微软三年前发布了一个修复程序(并且已经安装)这一事实并不重要(她不会停止咆哮听取这一点。)
或许那就是为什么我对Task Scheduler过敏 - 你可能需要修补你的版本。 YMMV。