Explorar o código

Merge pull request #13 from PrimusNZ/master

Bat Files: Change batch file to compare start and end time in entirety, not just seconds
OwN-3m-All %!s(int64=8) %!d(string=hai) anos
pai
achega
761b374fb6
Modificáronse 1 ficheiros con 12 adicións e 6 borrados
  1. 12 6
      OGP/ogp_agent.pl

+ 12 - 6
OGP/ogp_agent.pl

@@ -448,19 +448,25 @@ sub create_screen_cmd_loop
 	# Create batch file that will launch the process and store PID which will be used for killing later
 	open (SERV_START_BAT_SCRIPT, '>', $server_start_batfile);
 	
-	my $batch_server_command = ":TOP" . "\r\n";
+	my $batch_server_command = "\@echo off" . "\r\n"
+	. "setlocal EnableDelayedExpansion" . "\r\n"
+	. ":TOP" . "\r\n";
 	
 	if(defined $envVars && $envVars ne ""){
 		$batch_server_command .= $envVars;
 	}
 	
-	$batch_server_command .= "set starttime=%time%" . "\r\n"
+	$batch_server_command .= "set STARTTIME=%time%" . "\r\n"
 	. "start " . $priority . " " . $affinity . " /wait " . $exec_cmd . "\r\n"
-	. "set endtime=%time%" . "\r\n" 
-	. "set /a secs=%endtime:~6,2%" . "\r\n" 
-	. "set /a secs=%secs%-%starttime:~6,2%" . "\r\n"
+	. "set ENDTIME=%time%" . "\r\n"
+	. "set \"end=!ENDTIME:%time:~8,1%=%%100)*100+1!\"  &  set \"start=!STARTTIME:%time:~8,1%=%%100)*100+1!\"" . "\r\n"
+	. "set /A \"elap=((((10!end:%time:~2,1%=%%100)*60+1!%%100)-((((10!start:%time:~2,1%=%%100)*60+1!%%100)\"" . "\r\n"
+	. "set /A \"cc=elap%%100+100,elap/=100,ss=elap%%60+100,elap/=60,mm=elap%%60+100,hh=elap/60+100\"" . "\r\n"
+	. "set hour=%hh:~1%" . "\r\n"
+	. "set minute=%mm:~1%" . "\r\n"
+	. "set second=%ss:~1%" . "\r\n"
 	. "if exist SERVER_STOPPED exit" . "\r\n"
-	. "if %secs% lss 15 exit" . "\r\n"
+	. "IF \"%hour%\" == \"00\" IF \"%minute%\" == \"00\" IF %second% lss 15 exit" . "\r\n"
 	. "goto TOP" . "\r\n";
 	
 	print SERV_START_BAT_SCRIPT $batch_server_command;