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