【问题标题】:Need Assistance with Batch File ( Game Servers )需要批处理文件的帮助(游戏服务器)
【发布时间】:2015-09-28 22:16:31
【问题描述】:

大家好,我希望获得有关我从头开始创建的批处理文件的帮助。仅供参考,我的编码经验为零。

@echo off
color B
echo About to start....
TIMEOUT 5
echo Killing any Servers before I start them.... 
TIMEOUT 5
taskkill /f /im Unturned.exe
echo DONE!
TIMEOUT 5
echo Starting =ZBG= servers....
TIMEOUT 5
start "" /b "C:\Users\Administrator\Desktop\pvp1ar.lnk"
TIMEOUT 5 
start "" /b "C:\Users\Administrator\Desktop\pvp2sn.lnk"
TIMEOUT 5
start "" /b "C:\Users\Administrator\Desktop\pvp3ar.lnk"
TIMEOUT 5
start "" /b "C:\Users\Administrator\Desktop\pvp4sn.lnk" 
TIMEOUT 5
start "" /b "C:\Users\Administrator\Desktop\pvp5ar.lnk"
TIMEOUT 5
start "" /b "C:\Users\Administrator\Desktop\pvp6sn.lnk"
TIMEOUT 8
:loop
echo **@@**DONT FORGET TO CLOSE ME**@@**
goto loop 
exit

所以我有一个 Windows Server VPS,我在托管的 Dedi Box 上托管它。我有六个游戏服务器,用于一个名为“Unturned”的游戏。托管这么多服务器的唯一方法是通过桌面快捷方式单独启动它们。

我真的希望timeout 不会说“please press any key to continue”,我尝试使用pausebrake 命令但我无法让它工作,它需要有我设置的时间量在上面的脚本中,这样服务器就可以干净地启动,而不会同时从它们那里得到错误。

我需要脚本来做同样的事情,但最后有一个计时器,每 4 小时重新启动一次。非常简单的谈论它,但我不知道如何做到这一点。

【问题讨论】:

  • 为什么要标记phpc
  • 建议使用sleep *seconds* 而不是timeout *seconds*
  • Joe - 当你有时间时,我可以得到我在这里提供的答案的状态superuser.com/questions/1030214/… 正如你提到的解决方案工作得很好,所以我很好奇你是否会接受这个答案在某个时候还是什么?先生,如果您有时间,我将非常感谢您对此事的跟进。

标签: windows batch-file cmd


【解决方案1】:

以这种方式使用超时:

@timeout /T 5 /nobreak >NUL

必读: 在cmdHELP TIMEOUTHELP GOTOHELP STARTHELP ECHO

这里的脚本每 4 小时重启一次服务器。

@echo off
color B

:loop
cls

echo About to start....

@timeout /T 1 /nobreak >NUL
echo Killing any Servers before I start them.... 

@timeout /T 1 /nobreak >NUL
taskkill /f /im Unturned.exe
echo DONE!

@timeout /T 10 /nobreak >NUL
echo Server #1 is going to start
start "" /b "C:\Users\Administrator\Desktop\pvp1ar.lnk"

echo Server #2 is going to start
@timeout /T 10 /nobreak >NUL
start "" /b "C:\Users\Administrator\Desktop\pvp2sn.lnk"

echo Server #3 is going to start
@timeout /T 10 /nobreak >NUL
start "" /b "C:\Users\Administrator\Desktop\pvp3ar.lnk"

echo Server #4 is going to start
@timeout /T 10 /nobreak >NUL
start "" /b "C:\Users\Administrator\Desktop\pvp4sn.lnk" 

echo Server #5 is going to start
@timeout /T 10 /nobreak >NUL
start "" /b "C:\Users\Administrator\Desktop\pvp5ar.lnk"

echo Server #6 is going to start
@timeout /T 10 /nobreak >NUL
start "" /b "C:\Users\Administrator\Desktop\pvp6sn.lnk"

REM Every 4 hours kill and start servers. note 1H = 3600 seconds
REM use timeout then goto loop
@timeout /T 14400 /nobreak >NUL

goto loop 

注意:

  1. 如果想看倒计时在最后一个timeout删除>NUL
  2. 如果您想按需重启服务器,请删除 /nobreak

【讨论】:

  • 您可能还想查看stop 命令,因为它“应该”导致服务器更优雅地关闭
  • 请注意:对于定期运行它,计划任务可能是更好的解决方案(通过 GUI - “任务计划程序”或命令行schtasks /create /?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-11-13
  • 1970-01-01
  • 2011-03-09
  • 1970-01-01
相关资源
最近更新 更多