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)

@echo offSETLOCAL ENABLEEXTENSIONSSETLOCAL ENABLEDELAYEDEXPANSIONmode con: cols=185 lines=90COLOR 1F
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