7878
7979SETLOCAL
8080REM Internal Scripty stuff
81+ REM Define system root so we can run CORRECT version of things (like FIND)
82+ SET MC_SYS32 = %SYSTEMROOT% \SYSTEM32
8183REM default an error code in case error block is ran without this var being defined first
8284SET MC_SERVER_ERROR_REASON = Unspecified
8385REM this is a temp variable to use for intermidiate calculations and such
@@ -88,6 +90,7 @@ REM set "crash time" to initial script start
8890SET MC_SERVER_CRASH_YYYYMMDD = %date:~10 ,4 %%date:~4 ,2 %%date:~7 ,2 %
8991SET MC_SERVER_CRASH_HHMMSS = %time:~0 ,2 %%time:~3 ,2 %%time:~6 ,2 %
9092
93+
9194REM delete log if already exists to start a fresh one
9295IF EXIST " %~dp0 serverstart.log" DEL /F /Q " %~dp0 serverstart.log"
9396ECHO . 1 >> " %~dp0 serverstart.log" 2 >& 1
@@ -115,52 +118,52 @@ ECHO DEBUG: settings.cfg Found. Logging full contents below: 1>> "%~dp0serverst
115118> nul COPY " %~dp0 serverstart.log" +" %~dp0 settings.cfg" " %~dp0 serverstart.log"
116119ECHO . 1 >> " %~dp0 serverstart.log" 2 >& 1
117120
118- > nul FIND /I " MAX_RAM=" " %~dp0 settings.cfg" || (
121+ > nul %MC_SYS32% \ FIND.EXE /I " MAX_RAM=" " %~dp0 settings.cfg" || (
119122 SET MC_SERVER_ERROR_REASON = Settings.cfg_Error:MAX_RAM
120123 GOTO ERROR
121124 )
122125
123- > nul FIND /I " JAVA_ARGS=" " %~dp0 settings.cfg" || (
126+ > nul %MC_SYS32% \ FIND.EXE /I " JAVA_ARGS=" " %~dp0 settings.cfg" || (
124127 SET MC_SERVER_ERROR_REASON = Settings.cfg_Error:JAVA_ARGS
125128 GOTO ERROR
126129 )
127130
128- > nul FIND /I " CRASH_COUNT=" " %~dp0 settings.cfg" || (
131+ > nul %MC_SYS32% \ FIND.EXE /I " CRASH_COUNT=" " %~dp0 settings.cfg" || (
129132 SET MC_SERVER_ERROR_REASON = Settings.cfg_Error:CRASH_COUNT
130133 GOTO ERROR
131134 )
132135
133- > nul FIND /I " CRASH_TIMER=" " %~dp0 settings.cfg" || (
136+ > nul %MC_SYS32% \ FIND.EXE /I " CRASH_TIMER=" " %~dp0 settings.cfg" || (
134137 SET MC_SERVER_ERROR_REASON = Settings.cfg_Error:CRASH_TIMER
135138 GOTO ERROR
136139 )
137140
138- > nul FIND /I " RUN_FROM_BAD_FOLDER=" " %~dp0 settings.cfg" || (
141+ > nul %MC_SYS32% \ FIND.EXE /I " RUN_FROM_BAD_FOLDER=" " %~dp0 settings.cfg" || (
139142 SET MC_SERVER_ERROR_REASON = Settings.cfg_Error:RUN_FROM_BAD_FOLDER
140143 GOTO ERROR
141144 )
142145
143- > nul FIND /I " IGNORE_OFFLINE=" " %~dp0 settings.cfg" || (
146+ > nul %MC_SYS32% \ FIND.EXE /I " IGNORE_OFFLINE=" " %~dp0 settings.cfg" || (
144147 SET MC_SERVER_ERROR_REASON = Settings.cfg_Error:IGNORE_OFFLINE
145148 GOTO ERROR
146149 )
147150
148- > nul FIND /I " IGNORE_JAVA_CHECK=" " %~dp0 settings.cfg" || (
151+ > nul %MC_SYS32% \ FIND.EXE /I " IGNORE_JAVA_CHECK=" " %~dp0 settings.cfg" || (
149152 SET MC_SERVER_ERROR_REASON = Settings.cfg_Error:IGNORE_JAVA_CHECK
150153 GOTO ERROR
151154 )
152155
153- > nul FIND /I " MCVER=" " %~dp0 settings.cfg" || (
156+ > nul %MC_SYS32% \ FIND.EXE /I " MCVER=" " %~dp0 settings.cfg" || (
154157 SET MC_SERVER_ERROR_REASON = Settings.cfg_Error:MCVER
155158 GOTO ERROR
156159 )
157160
158- > nul FIND /I " FORGEVER=" " %~dp0 settings.cfg" || (
161+ > nul %MC_SYS32% \ FIND.EXE /I " FORGEVER=" " %~dp0 settings.cfg" || (
159162 SET MC_SERVER_ERROR_REASON = Settings.cfg_Error:FORGEVER
160163 GOTO ERROR
161164 )
162165
163- > nul FIND /I " FORGEURL=" " %~dp0 settings.cfg" || (
166+ > nul %MC_SYS32% \ FIND.EXE /I " FORGEURL=" " %~dp0 settings.cfg" || (
164167 SET MC_SERVER_ERROR_REASON = Settings.cfg_Error:FORGEURL
165168 GOTO ERROR
166169 )
@@ -254,13 +257,13 @@ ECHO INFO: Checking java installation...
254257ECHO DEBUG: JAVA version output (java -d64 -version): 1 >> " %~dp0 serverstart.log" 2 >& 1
255258java -d64 -version || GOTO JAVAERROR 1 >> " %~dp0 serverstart.log" 2 >& 1
256259
257- java -d64 -version 2 >& 1 | FIND " 1.8" 1 >> " %~dp0 serverstart.log" 2 >& 1
260+ java -d64 -version 2 >& 1 | %MC_SYS32% \ FIND.EXE " 1.8" 1 >> " %~dp0 serverstart.log" 2 >& 1
258261IF %ERRORLEVEL% EQU 0 (
259262 ECHO INFO: Found 64-bit Java 1.8 1 >> " %~dp0 serverstart.log" 2 >& 1
260263 ECHO ...64-bit Java 1.8 found! 1 >> " %~dp0 serverstart.log" 2 >& 1
261264 GOTO CHECKFOLDER
262265) ELSE (
263- java -d64 -version 2 >& 1 | FIND " 1.9" 1 >> " %~dp0 serverstart.log" 2 >& 1
266+ java -d64 -version 2 >& 1 | %MC_SYS32% \ FIND.EXE " 1.9" 1 >> " %~dp0 serverstart.log" 2 >& 1
264267 IF %ERRORLEVEL% EQU 0 (
265268 ECHO INFO: Found 64-bit Java 1.9 1 >> " %~dp0 serverstart.log" 2 >& 1
266269 ECHO ...64-bit Java 1.9 found!
@@ -299,26 +302,26 @@ ECHO INFO: Checking if current folder is valid... 1>> "%~dp0serverstart.log" 2>
299302
300303REM Check if current directory is in ProgramFiles
301304IF NOT DEFINED ProgramFiles ( GOTO CHECKPROG86 )
302- ECHO .x%CD% x | FINDSTR /I /C:" %ProgramFiles% " > nul
305+ ECHO .x%CD% x | %MC_SYS32% \ FINDSTR.EXE /I /C:" %ProgramFiles% " > nul
303306REM ECHO Error Level: %ERRORLEVEL%
304307IF %ERRORLEVEL% EQU 0 (
305308 SET MC_SERVER_ERROR_REASON = BadFolder-ProgramFiles;
306309 GOTO FOLDERERROR
307310)
308- ECHO .x%~dp0 x | FINDSTR /I /C:" %ProgramFiles% " > nul
311+ ECHO .x%~dp0 x | %MC_SYS32% \ FINDSTR.EXE /I /C:" %ProgramFiles% " > nul
309312IF %ERRORLEVEL% EQU 0 (
310313 SET MC_SERVER_ERROR_REASON = BadFolder-ProgramFiles;
311314 GOTO FOLDERERROR
312315)
313316
314317:CHECKPROG86
315318IF NOT DEFINED ProgramFiles^ (x86^ ) ( GOTO CHECKSYS )
316- ECHO .x%CD% x | FINDSTR /I /C:" %ProgramFiles(x86)% " > nul
319+ ECHO .x%CD% x | %MC_SYS32% \ FINDSTR.EXE /I /C:" %ProgramFiles(x86)% " > nul
317320IF %ERRORLEVEL% EQU 0 (
318321 SET MC_SERVER_ERROR_REASON = BadFolder-ProgramFiles86;
319322 GOTO FOLDERERROR
320323)
321- ECHO .x%~dp0 x | FINDSTR /I /C:" %ProgramFiles(x86)% " > nul
324+ ECHO .x%~dp0 x | %MC_SYS32% \ FINDSTR.EXE /I /C:" %ProgramFiles(x86)% " > nul
322325IF %ERRORLEVEL% EQU 0 (
323326 SET MC_SERVER_ERROR_REASON = BadFolder-ProgramFiles86;
324327 GOTO FOLDERERROR
@@ -327,12 +330,12 @@ IF %ERRORLEVEL% EQU 0 (
327330:CHECKSYS
328331REM Check if current directory is in SystemRoot
329332IF NOT DEFINED SystemRoot ( GOTO CHECKTEMP )
330- ECHO .x%CD% x | FINDSTR /I /C:" %SystemRoot% " > nul
333+ ECHO .x%CD% x | %MC_SYS32% \ FINDSTR.EXE /I /C:" %SystemRoot% " > nul
331334IF %ERRORLEVEL% EQU 0 (
332335 SET MC_SERVER_ERROR_REASON = BadFolder-System;
333336 GOTO FOLDERERROR
334337)
335- ECHO .x%~dp0 x | FINDSTR /I /C:" %SystemRoot% " > nul
338+ ECHO .x%~dp0 x | %MC_SYS32% \ FINDSTR.EXE /I /C:" %SystemRoot% " > nul
336339IF %ERRORLEVEL% EQU 0 (
337340 SET MC_SERVER_ERROR_REASON = BadFolder-System;
338341 GOTO FOLDERERROR
@@ -341,25 +344,25 @@ IF %ERRORLEVEL% EQU 0 (
341344:CHECKTEMP
342345REM Check if current directory is in TEMP
343346IF NOT DEFINED TEMP ( GOTO CHECKTMP )
344- ECHO .x%CD% x | FINDSTR /I /C:" %TEMP% " > nul
347+ ECHO .x%CD% x | %MC_SYS32% \ FINDSTR.EXE /I /C:" %TEMP% " > nul
345348IF %ERRORLEVEL% EQU 0 (
346349 SET MC_SERVER_ERROR_REASON = BadFolder-Temp;
347350 GOTO FOLDERERROR
348351)
349- ECHO .x%~dp0 x | FINDSTR /I /C:" %TEMP% " > nul
352+ ECHO .x%~dp0 x | %MC_SYS32% \ FINDSTR.EXE /I /C:" %TEMP% " > nul
350353IF %ERRORLEVEL% EQU 0 (
351354 SET MC_SERVER_ERROR_REASON = BadFolder-Temp;
352355 GOTO FOLDERERROR
353356)
354357
355358:CHECKTMP
356359IF NOT DEFINED TMP ( GOTO CHECKONLINE )
357- ECHO .x%CD% x | FINDSTR /I /C:" %TMP% " > nul
360+ ECHO .x%CD% x | %MC_SYS32% \ FINDSTR.EXE /I /C:" %TMP% " > nul
358361 IF %ERRORLEVEL% EQU 0 (
359362 SET MC_SERVER_ERROR_REASON = BadFolder-Temp;
360363 GOTO FOLDERERROR
361364 )
362- ECHO .x%~dp0 x | FINDSTR /I /C:" %TMP% " > nul
365+ ECHO .x%~dp0 x | %MC_SYS32% \ FINDSTR.EXE /I /C:" %TMP% " > nul
363366 IF %ERRORLEVEL% EQU 0 (
364367 SET MC_SERVER_ERROR_REASON = BadFolder-Temp;
365368 GOTO FOLDERERROR
@@ -385,7 +388,7 @@ ECHO Checking for basic internet connectivity...
385388ECHO INFO: Checking for basic internet connectivity... 1 >> " %~dp0 serverstart.log" 2 >& 1
386389
387390REM Try with Google DNS
388- PING -n 2 -w 1000 8.8.8.8 | find " TTL=" 1 >> " %~dp0 serverstart.log" 2 >& 1
391+ %MC_SYS32% \ PING.EXE -n 2 -w 1000 8.8.8.8 | %MC_SYS32% \FIND.EXE " TTL=" 1 >> " %~dp0 serverstart.log" 2 >& 1
389392IF %ERRORLEVEL% EQU 0 (
390393 SET MC_SERVER_TMP_FLAG = 0
391394 ECHO INFO: Ping of " 8.8.8.8" Successfull 1 >> " %~dp0 serverstart.log" 2 >& 1
@@ -396,7 +399,7 @@ IF %ERRORLEVEL% EQU 0 (
396399
397400REM If Google ping failed try one more time with L3 just in case
398401IF MC_SERVER_TMP_FLAG EQU 1 (
399- PING -n 2 -w 1000 4.2.2.1 | find " TTL=" 1 >> " %~dp0 serverstart.log" 2 >& 1
402+ %MC_SYS32% \ PING.EXE -n 2 -w 1000 4.2.2.1 | %MC_SYS32% \FIND.EXE " TTL=" 1 >> " %~dp0 serverstart.log" 2 >& 1
400403 IF %ERRORLEVEL% EQU 0 (
401404 SET MC_SERVER_TMP_FLAG = 0
402405 INFO: Ping of " 4.4.2.1" Successfull 1 >> " %~dp0 serverstart.log" 2 >& 1
@@ -522,7 +525,7 @@ ECHO Clearing old files before installing forge/minecraft...
522525ECHO INFO: Clearing and installing forge/minecraft... 1 >> " %~dp0 serverstart.log" 2 >& 1
523526
524527REM Just in case there's anything pending or dupe-named before starting...
525- bitsadmin /reset 1 >> " %~dp0 serverstart.log" 2 >& 1
528+ %MC_SYS32% \ bitsadmin.exe /reset 1 >> " %~dp0 serverstart.log" 2 >& 1
526529
527530(FOR /f " tokens=* delims=*" %%x in ('dir " %~dp0 *forge*%MC_SERVER_MCVER% *%MC_SERVER_FORGEVER% *installer.jar" /B /O:-D') DO SET " MC_SERVER_TMP_FLAG = %%x " & GOTO INSTALL1) 1 >> " %~dp0 serverstart.log" 2 >& 1
528531
@@ -550,7 +553,7 @@ IF NOT %MC_SERVER_IGNORE_OFFLINE% EQU 0 (
550553)
551554
552555REM Ping minecraftforge before attempting download
553- PING -n 2 -w 1000 minecraftforge.net | find " TTL=" 1 >> " %~dp0 serverstart.log" 2 >& 1
556+ %MC_SYS32% \ PING.EXE -n 2 -w 1000 minecraftforge.net | %MC_SYS32% \FIND.EXE " TTL=" 1 >> " %~dp0 serverstart.log" 2 >& 1
554557IF %ERRORLEVEL% EQU 0 (
555558 ECHO INFO: Ping of " minecraftforge.net" Successfull 1 >> " %~dp0 serverstart.log" 2 >& 1
556559) ELSE (
@@ -582,7 +585,7 @@ SET MC_SERVER_TMP_FLAG=0
582585:FETCHHTML
583586REM Download Forge Download Index HTML to parse the URL for the direct download
584587ECHO INFO: Fetching index html from forge ^ ( https://files.minecraftforge.net/maven/net/minecraftforge/forge/index_%MC_SERVER_MCVER% .html ^ ) 1 >> " %~dp0 serverstart.log" 2 >& 1
585- bitsadmin /rawreturn /nowrap /transfer dlforgehtml /download /priority FOREGROUND " https://files.minecraftforge.net/maven/net/minecraftforge/forge/index_%MC_SERVER_MCVER% .html" " %~dp0 forge-%MC_SERVER_MCVER% .html" 1 >> " %~dp0 serverstart.log" 2 >& 1
588+ %MC_SYS32% \ bitsadmin.exe /rawreturn /nowrap /transfer dlforgehtml /download /priority FOREGROUND " https://files.minecraftforge.net/maven/net/minecraftforge/forge/index_%MC_SERVER_MCVER% .html" " %~dp0 forge-%MC_SERVER_MCVER% .html" 1 >> " %~dp0 serverstart.log" 2 >& 1
586589
587590IF NOT EXIST " %~dp0 forge-%MC_SERVER_MCVER% .html" (
588591 IF " %MC_SERVER_TMP_FLAG% " == " 0" (
@@ -613,7 +616,7 @@ REM )
613616REM )
614617
615618REM More complex wannabe-regex (aka magic)
616- FOR /f tokens^ =^ 5^ delims^ =^ =^ < ^ > ^ " %%G in ('findstr /ir " http:\/\/files.*%MC_SERVER_FORGEVER% .*installer.jar" " %~dp0 forge-%MC_SERVER_MCVER% .html" ') DO SET MC_SERVER_FORGEURL=%%G & GOTO FETCHHTML1
619+ FOR /f tokens^ =^ 5^ delims^ =^ =^ < ^ > ^ " %%G in ('%MC_SYS32% \FINDSTR.EXE /ir " http:\/\/files.*%MC_SERVER_FORGEVER% .*installer.jar" " %~dp0 forge-%MC_SERVER_MCVER% .html" ') DO SET MC_SERVER_FORGEURL=%%G & GOTO FETCHHTML1
617620
618621:FETCHHTML1
619622IF " %MC_SERVER_FORGEURL% " == " %MC_SERVER_FORGEURL:installer.jar =% " (
@@ -633,7 +636,7 @@ SET MC_SERVER_TMP_FLAG=0
633636:DOWNLOADINSTALLER
634637REM Attempt to download installer to a temp download
635638ECHO DEBUG: Attempting to download " %MC_SERVER_FORGEURL% " 1 >> " %~dp0 serverstart.log" 2 >& 1
636- bitsadmin /rawreturn /nowrap /transfer dlforgeinstaller /download /priority FOREGROUND %MC_SERVER_FORGEURL% " %~dp0 tmp-forgeinstaller.jar" 1 >> " %~dp0 serverstart.log" 2 >& 1
639+ %MC_SYS32% \ bitsadmin.exe /rawreturn /nowrap /transfer dlforgeinstaller /download /priority FOREGROUND %MC_SERVER_FORGEURL% " %~dp0 tmp-forgeinstaller.jar" 1 >> " %~dp0 serverstart.log" 2 >& 1
637640
638641REM Check that temp-download installer was downloaded
639642IF NOT EXIST " %~dp0 tmp-forgeinstaller.jar" (
@@ -756,7 +759,7 @@ GOTO CLEANUP
756759:RESTARTER
757760COLOR 6F
758761REM Quick-check EULA before commencing full restarter logic
759- > nul FIND /I " eula=true" " %~dp0 eula.txt" || (
762+ > nul %MC_SYS32% \ FIND.EXE /I " eula=true" " %~dp0 eula.txt" || (
760763 TITLE ERROR: EULA.TXT Must be updated before %MC_SERVER_PACKNAME% server can start
761764 CLS
762765 ECHO .
@@ -895,7 +898,7 @@ SET MC_SERVER_CRASH_YYYYMMDD=
895898SET MC_SERVER_CRASH_HHMMSS =
896899
897900REM Reset bitsadmin in case things got hung or errored
898- bitsadmin /reset 1 >> " %~dp0 serverstart.log" 2 >& 1
901+ %MC_SYS32% \ bitsadmin.exe /reset 1 >> " %~dp0 serverstart.log" 2 >& 1
899902
900903COLOR
901904
0 commit comments