Something very similar I did some time ago, below is an adaptation / merging with your code and also using for...
this is string
%errorlevel% == 1
and this is int comparation
%errorlevel% EQU 1
@echo off && setlocal enabledelayedexpansion
echo; & set _loadfiles=<nul
set "_Viewer=%SystemDrive%\software\Viewer.exe"
set "_msn_error=This option is not yet valid..."
:AddSamples
cls & color 0A & echo=
if defined _loadfiles (
echo\ Current loadfiles: ^| !_loadfiles:;= ^|! )
echo\ Add sample number & echo\
for /L %%i in (1 1 6)do if %%~i equ 6 (
echo\ A - All and Go
echo\ G - Done and Go & echo\
)else <con: echo\ %%~i - Sample_0%%~i
choice /c 12345AG /m "What is your choice? "
if !errorlevel! equ 6 (
for /L %%i in (1 1 5)do set "_loadfiles=Sample_0%%i.mp3;!_loadfiles!"
goto=:Continue
)else if !errorlevel! leq 5 (
set "_loadfiles=!_loadfiles!Sample_0!errorlevel!.mp3;"
goto=:AddSamples
)else if !errorlevel! equ 7 if not defined _loadfiles (
color F4 & set /p "'=%_msn_error%" & goto=:AddSamples
)else echo\ & goto=:Continue
:Continue
"!_Viewer!" /LOADFILES=!_loadfiles:~0,-1!
rem :: more code here...
%__APPDIR__%timeout.exe -1 & endlocal & goto=:EOF