cls
@echo off
set a=1
set b=1
set dira=1
set dirb=1
set choice1=
set choice2=
for /F "usebackq delims=\n" %%i in (`dir /AD /B progs`) do (call :s_do_sums %%i)
set /p choice1=Category:
for /F "usebackq delims=\n" %%i in (`dir /AD /B progs`) do (call :s_do_sums2 %%i)
goto :eof
:s_do_sums
echo %a%: %1
set /a a+=1
goto :eof
:s_do_sums2
if '%choice1%'=='%b%' (call :s_list_dir %1)
set /a b+=1
goto :eof
:s_list_dir
for %%c in (progs\%1\*.exe) do (call :s_list_files %%~nxc)
set /p choice2=Program:
for %%d in (progs\%1\*.exe) do (call :s_list_files2 %%~nxd %%i)
goto :eof
:s_list_files
echo %dira%: %1
set /a dira+=1
goto :eof
:s_list_files2
if '%choice2%'=='%dirb%' "progs\%2\%1"
set /a dirb+=1
goto :eof