1- @ echo off
1+ @ echo on
22setlocal enabledelayedexpansion
33
44set CurrentVersion = v1.7.3
@@ -49,35 +49,40 @@ for %%G in (%*) DO (if "%%G"=="--debug" (set "par_debug=true" & goto ArgParser))
4949 )
5050
5151if not " %par_selfwrapped% " == " true" (
52- cmd /c " " %~f0 " %* --selfwrapped" || (set " wraperror=true " )
53- echo UNWRAPPED ^ (!errorlevel! ^ )
54- echo Returning to instance % starttime%
52+ start /wait " " /b " %~f0 " %* --selfwrapped
53+ echo UNWRAPPED ^ (!wraperror! ^ ) ^ ( ! errorlevel!^ )
54+ echo Returning to instance ! starttime!
5555 echo Currentargs: %*
5656 echo Currentargs2: !allargs!
57- if " !wraperror! " == " true" (
58- < %TEMP% \batch_update.tmp set /p " newfilename = "
59- echo newfilename: !newfilename!
57+ echo Selfwrapped: !par_selfwrapped!
58+ < %TEMP% \batch_update.tmp set /p " newfilename = "
59+ echo newfilename: !newfilename!
60+ pause
61+ rem If errorlevel is negative, it's a restart command:
62+ rem Standard restart
63+ if " !errorlevel! " == " -1" (
64+ echo ERROR -1 - RESTART REQUESTED
65+ echo restarting " %~f0 "
6066 pause
61- rem If errorlevel is negative, it's a restart command:
62- rem Standard restart
63- if " !errorlevel! " == " -1" (
64- echo ERROR MINUS 1 - RESTART REQUESTED
65- pause
66- " %~f0 "
67- )
68- rem Restart after update
69- if " !errorlevel! " == " -2" (!newfilename! --updated-from " %~f0 " )
70- rem Restart after update (with silent, so passing previous args)
71- rem if "!errorlevel!"=="-3" ((goto) 2> nul & !newfilename! --updated-from "%~f0" %* --update false --selfwrapped false)
72-
73- rem If errorlevel starts with 101, it's already been handled
74- if " !errorlevel:~0 ,3 ! " == " 101" (
75- set " errorlevel = !errorlevel:~3 ! "
76- ) else (
77- call :CritError " Wrapper critically exited with error code !errorlevel! ."
78- )
67+ cmd /c " %~f0 " & exit /b
68+ )
69+ rem Restart after update
70+ if " !errorlevel! " == " -2" (
71+ rem !newfilename! --updated-from "%~f0"
72+ echo cmd /c " " !newfilename:" =! " " --updated-from " %~f0 " ^ & exit /b
73+ cmd /c @ " !newfilename:" =! " --updated-from " %~f0 " & exit /b
7974 )
80- echo about to exit with code !errorlevel!
75+ rem Restart after update (with silent, so passing previous args)
76+ rem if "!errorlevel!"=="-3" ((goto) 2> nul & !newfilename! --updated-from "%~f0" %* --update false --selfwrapped false)
77+
78+ rem If errorlevel starts with 101, it's already been handled
79+ if " !errorlevel:~0 ,3 ! " == " 101" (
80+ set " errorlevel = !errorlevel:~3 ! "
81+ ) else (
82+ echo ABOUT TO CALL CRIT ERROR
83+ call :CritError " Wrapper critically exited with error code !errorlevel! ."
84+ )
85+ echo instance %starttime% about to exit with code !errorlevel!
8186 exit /b !errorlevel!
8287)
8388
@@ -244,7 +249,8 @@ if defined par_updated-from (
244249 rem (goto) 2> nul & (goto) 2> nul & "batch encoder %UpdateVersion%%append%.bat" --updated-from "%~f0" %* --update false --selfwrapped false
245250 rem cmd /c ""batch encoder %UpdateVersion%%append%.bat" --updated-from "%~f0" %* --update false --selfwrapped false" & exit
246251 ) else (
247- exit -2
252+ rem exit -2
253+ (goto) 2 > nul & cmd /c " " batch encoder %UpdateVersion%%append% .bat" --updated-from " %~f0 " "
248254 rem "batch encoder %UpdateVersion%%append%.bat" --updated-from "%~f0"
249255 )
250256
@@ -502,7 +508,7 @@ if %TOTAL% equ 0 (echo [100;37m No files found. %formatend%)
502508
503509:EndPause
504510 call:GrayPause
505- exit / b 0
511+ call:CtrlExit 0
506512
507513:CritError
508514 timeout / t 1 > nul
@@ -514,6 +520,7 @@ if %TOTAL% equ 0 (echo [100;37m No files found. %formatend%)
514520 if defined errmsg (echo Error message provided: %errmsg%)
515521 call:GrayPause
516522 call:CtrlExit 3
523+ goto:eof
517524
518525:AutoUpdateError
519526 if exist " %updateFileName%" (del "%updateFileName%")
@@ -527,13 +534,17 @@ if %TOTAL% equ 0 (echo [100;37m No files found. %formatend%)
527534 echo The program will now restart.
528535 call :GrayPause
529536 exit -1
537+ goto :eof
530538
531539:CtrlExit
532540 if " %par_selfwrapped% " == " true" (
541+ echo SAFE EXIT
533542 exit 101%~1
534543 )
544+ echo UNKNOWN
535545 rem go one level up (out of subroutine), then exit
536546 (goto) 2 > nul || exit /b %~1
547+ goto :eof
537548
538549:GrayPause
539550 echo %textgray%
0 commit comments