2015-04-22 47 views
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

+0

順便說一下,我的啓動服務器批處理工作正常。當服務器正在運行並且我重啓了批處理時,服務器確實會重新啓動並創建新的日誌。 – Jayson

+0

爲什麼你不使用調度程序?添加你的任務,並設置時間重複每4小時? – user3344236

+0

Windows調度程序? – Jayson

回答

1

剛剛出了什麼問題 - 等待4小時然後重新啓動。

timeout /t 14400 
shutdown /r /f /t 0 
相關問題