0
我有一些麻煩,我希望有人可以幫忙。我有一臺遊戲服務器,我正在專用服務器上運行。我有一個當前正在運行服務器的批處理文件。服務器啓動4小時後需要重新啓動服務器。我在掙扎的是在4小時內讓批處理文件運行我的重啓批處理文件的語句?如果批處理文件說在4個小時內運行我的重啓批處理,我的生命將被保存。專用服務器重啓批文件
這裏是我目前的批處理文件。
@echo off
if "%configdone%"=="1" (
\t GOTO :EOF
)
set configdone=0
set skbt_debug=2
set keepalive_database=1
set keepalive_bec=0
set keepalive_asm=0
set keepalive_ts=0
set keepalive_hc=0
set serverport=2302
set bindtoip=0
set serverip=118.217.115.72
set bec_flag_dsc=1
set teamspeak_port=2310
set asm_log_interval=5
set serverStartTimeout=10
set db_backup_interval=60
set use_zip_logs=1
set use_zip_backups=1
set databasebackupfolder="E:\Overpoch Server 1\Backup"
set logfilebackupfolder="C:\apps\epoch_log_backups"
set manual_timeout_length=2
set auto_timeout_length=10
set auto_restart_delay=5
set cleanWerDialogs=1
set hclaunchparams=-connect=1 -ip=199.217.115.72 -port=2312 -client -nosound [email protected];@EpochHive;@MAS;
set armaserverexe=arma3server.exe
set hcexename=arma3serverHC.exe
set teamspeakfilename=ts3server_win64.exe
set redisexename=redis-server.exe
set becexename=bec.exe
set asmexename=ArmaServerMonitor.exe
set databasefile_name=dump.rdb
set asm_log_file=asm_performance.log
set armapath="C:\servers\epochServer"
set hcarmapath="C:\servers\epochServer"
set teamspeakpath="C:\apps\teamspeak"
set redispath="C:\servers\epochServer\DB"
set asmpath="C:\servers\epochServer"
set Battleyepath="C:\servers\epochServer\SC\BattlEye"
set LogPath="C:\servers\epochServer\SC"
set becpath="C:\servers\epochServer\BEC"
set databasefile="C:\servers\epochServer\DB\dump.rdb"
set servercfgpath="C:\servers\epochServer\SC\config.cfg"
set serverbasicpath="C:\servers\epochServer\SC\basic.cfg"
set profilepathname="SC"
set cli_username="SC"
if %bindtoip%==1 (
\t set ip_param= -ip=%serverip%
) else (
\t set ip_param=
)
set [email protected];@EpochHive;@MAS;
set servercommandline=%armaserverexe% "%mod_string:"=%" "-config=%servercfgpath:"=%" %ip_param% -port=%serverport% "-profiles=%profilepathname:"=%" "-cfg=%serverbasicpath:"=%" "-name=%cli_username:"=%" -autoinit
set serverAffinity=0,1,2,3,4,5,6,7
set becAffinity=0,1,2,3,4,5,6,7
set hcAffinity=0,1,2,3,4,5,6,7
set redisAffinity=2,3,4,5,6,7,0,1
set teamspeakAffinity=0,1,2,3,4,5,6,7
set asmAffinity=0,1,2,3,4,5,6,7
set serverPriority=normal
set becPriority=normal
set hcPriority=normal
set redisPriority=normal
set teamspeakPriority=normal
set asmPriority=normal
這是我重新開始批量
@echo off
call "C:\servers\EPOCHS~2\batch\ULTSGS~1.CMD"
cd /D %armapath%
if %skbt_debug% GTR 2 (
\t call :FUNC NOVAR BatchLogWrite 3__AUTO_RESTART__EVENT__INITIALIZE====================================
)
call batch_lib\lib\setauto.bat
call batch_lib\lib\stop_all.bat
goto :EOF
:FUNC
set currentDir=%CD%
cd "%armapath%/batch_lib/gbl_func"
rem %1 = return var, %2 = function, %3 = args
set returnvarname=%1
set funcname=%2
set argString=%3
set argString=%argString:__= %
set argString=%argString:"=%
set argString=%argString:(=[%
set argString=%argString:)=]%
set args=%argString%
if "%argString%"=="__=" set args=
if "%argString%"=="" (
\t set args=
)
set filename=%funcname%.cmd
set val1=
for /f %%I in ('%filename% "%args%"') do (
\t set "val1=%%I"
)
set "%1=%val1%"
cd %currentDir%
goto :EOF
感謝您的幫助! Jayson
順便說一下,我的啓動服務器批處理工作正常。當服務器正在運行並且我重啓了批處理時,服務器確實會重新啓動並創建新的日誌。 – Jayson
爲什麼你不使用調度程序?添加你的任務,並設置時間重複每4小時? – user3344236
Windows調度程序? – Jayson