Choose a file
List files in a folder by date order (most recent first)
User chooses a number
returns file chosen
Can set a default on timeout (if 9 files or less) or if user presses ENTER (if more than 9 files)
set MYPATH="G:\Downloads\*.iso"set DEFAULT=1set TIMEOUT=3
:GETISOecho.echo ISO FILES IN %MYPATH%echo.set count=1set choose=for /f "tokens=*" %%i in ('dir %MYPATH% /b/a-d/od/t:c') do (echo !count! %%i & set choose=!choose!!count!& set /A count=!count!+1)echo.set /a count=%count%-1if %count%==0 echo NO FILES FOUND! & goto :EOF
if %count% LSS 10 CHOICE /C "%choose%" /N /M "SELECT DESIRED ISO (1-%count%) : " /T %TIMEOUT% /D %DEFAULT%if %count% LSS 10 set /A ask=%errorlevel%+0
if %count% GEQ 10 (set ask=%DEFAULT%set /P ask="SELECT DESIRED ISO (1-%count%) : "set /A ask=%ask+0)
if "%ask%"=="" echo INPUT ERROR! & goto :GETISOif "%ask%"=="0" echo INPUT ERROR! & goto :GETISOif %ask% GTR %count% echo ERROR - NUMBER TO BIG! & goto :GETISO
set count=1for /f "tokens=*" %%i in ('dir %MYPATH% /b/a-d/od/t:c') do (if !count!==%ask% set FILE=%%iset /A count=!count!+1)
echo.echo FILE=%ask% %FILE%
ISO FILES IN "G:\Downloads\win*.iso"
1 Winpe_x86_auto.iso
2 Winpe_x86_auto_298MB.iso
3 Win98SE_bootdisk.iso
4 Windows10x862018_04-02.iso
5 WindowsXP_.Pro.iso
6 Windows 98 SE (101 - Retail Full).iso
7 Windows 98 Second Edition.iso
8 Win98 SEStripped.iso
9 Win10_1809Oct_EnglishInternational_x64.iso
10 Win10PE_x86x64(EFI)_compact(2019).iso
11 Win10PE_x86x64(EFI)_mini(2019).iso
12 Win10_1709_English_x32.iso
13 Windows XP Professional SP3 x86 - Integral Edition 2019.3.16.iso
14 Win10_1903_V1_EnglishInternational_x64.iso
15 Windows XP Professional SP3 x86 - Integral Edition 2019.11.18 .iso
16 Windows10_1909_x64_English_MS.iso
17 WinPE10_8_Sergei_Strelec_x86_x64_2019.12.28_English.iso
18 Win10PESE_x64-1607_malekal.ISO
19 Win10_2004_English_x64.iso
20 Win10_2004_EnglishInternational_x64.iso
21 Win7_Ult_SP1_Spanish_x64.iso
22 Windows_7_64-bit_Professional_x64.iso
23 Windows10ULTRA_LITE.iso
24 Win8.1_EnglishInternational_x64.iso
25 Windows10_InsiderPreview_Client_x64_en-gb_20231.iso
26 WinMEFull.iso
27 Windows1064_20H2_International.iso
28 Win7SP1x64ES-Oct18.iso
29 Windows2103_64_eng.iso
30 Windows10_2021_05_H2_UK_64.iso
31 Win10_20H2_v2_EnglishInternational_x64.iso
32 Windows10_21H1_UK64.iso
33 Windows_10_32_UK_2021_08_05.iso
34 Win7_Home_Premium_SP1_x64_X17-58997.iso
35 Windows11_InsiderPreview_Client_x64_en-gb_22000.iso
36 Windows10_x64_UK.iso
37 Win11_EnglishInternational_x64.iso
38 Windows_Oct_17_2021_both_UK.iso
39 Windows11UK.iso
40 Win11_Slovenian_x64v1.iso
41 Windows10_21H2_BrasilPortuguese_dual_x64.iso
42 Windows10_21H2_BrasilPortuguese_SINGLE_x64.iso
43 Win10_21H2_BrazilianPortuguese_x64.iso
44 Win10_21H2_BrazilianPortuguese_x32.iso
45 Win11_English_x64v1.iso
46 Win11_EnglishInternational_x64v1.iso
47 Windows11_US_MCT.iso
48 Win11_EnglishInternational_x64v1 (1).iso
49 Windows10x64espanol21H2.iso
SELECT DESIRED ISO (1-49) : 32
FILE=32 Windows10_21H1_UK64.iso