使用批处理文件将命令发送到另一个批处理文件

时间:2013-11-08 00:27:36

标签: batch-file

我目前正在运行StarMade服务器,正在努力让服务器自动重启。

现在我们有2个批处理文件,1个运行服务器,另一个用于重启服务器。

运行服务器的批处理文件是:


标题主要Starmade服务器

的java -Xms4096m -Xmx6144m -XX:PermSize =512米-XX:MaxPermSize参数=1024米-XX:+ DisableExplicitGC -XX:+ UseConcMarkSweepGC -XX:+ UseParNewGC -XX:+ UseNUMA -XX:+ CMSParallelRemarkEnabled -XX:MaxGCPauseMillis = 50 -XX:+ UseAdaptiveGCBoundary -XX:-UseGCOverheadLimit -XX:+ UseBiasedLocking -XX:SurvivorRatio = 8 -XX:TargetSurvivorRatio = 90 -XX:UseSSE = 3 -XX:+ UseLargePages -XX:+ UseFastAccessorMethods -XX:+ UseStringCache - XX:+ UseCompressedOops -XX:+ AggressiveOpts -verbose:GC -XX:+ PrintGCDetails -XX:+ PrintGCTimeStamps -XX:+ PrintTenuringDistribution -Xloggc:memory.log -Xincgc -Xshare:关-jar StarMade.jar -server

EXIT


重启服务器的批处理文件是:


   @echo off
              title Server Automated Restarter
       :start
        echo Starting Starmade Server
              set time=60
        set timer
      cd C:\StarMade\StarMade
              start StartServer.bat /REALTIME
        timeout 120
        echo Server Started
        timeout 5
       :loop
              cls
              IF %time% GTR 0 (
               set /a time=%time% -1
               set /a min=%time%/60 +1
                 echo Server Restarter Active
                 echo Next Restart In %time% Seconds; Less Than %min% Minutes Remaining
        cd C:\Windows\System32
        ping (my ip goes here, but I've removed it for this post) -n 2 > NUL
              goto loop
              )
    echo Killing Java Task
    timeout 5 
       taskkill /f /im java.exe
    timeout 30
    echo Restarting Starmade Server 
      cls
     goto start

显然,这技术上崩溃服务器是强制停止的。游戏有一个“/ force_save”命令和一个“/ shutdown(timeInSec)”命令。我希望能够使用自动重启蝙蝠将这些命令发送到运行服务器的其他批处理文件。当服务器正在运行时,没有其他命令在运行服务器的批处理文件中被调用(除非手动输入)。

0 个答案:

没有答案