I should have used delayedexpansion
:
setlocal EnableDelayedExpansion
set vid1=asd
set vid2=qwe
for /L %%i in (1,1,3) do (echo !vid%%i!)
pause
It can also be done without delayedexpansion
:
for /L %%1 in (1,1,%count%) do (call :yt "%%vid%%1%%" %%1)
pause
exit
:yt
echo video %2
"C:\[path]\youtube-dl.exe" [youtube-dl arguments] %1
echo.
goto:eof
Full script (it's bloated because I was trying if I could do things):
@echo off
set count=0
:beh
set /a count+=1
set /p vid%count%=vid%count%:
if not defined vid%count% (
set /a count-=1
goto next
) else (
if %count%==1 (echo %count% vid) else (echo %count% vids)
goto beh)
pause
:next
echo %count% videos
pause >nul
choice /m "x?"
IF %ERRORLEVEL% EQU 1 (set x=-x)
echo press enter to run ytdl
pause >nul
echo initiating
echo.
@cd %homepath%/desktop
for /L %%1 in (1,1,%count%) do (call :yt "%%vid%%1%%" %%1)
pause
exit
:yt
echo video %2
"C:\[path]\youtube-dl.exe" %x% --no-check-certificate -w --console-title -i --no-mark-watched -o ".\%%(title)s.%%(ext)s" --prefer-ffmpeg --ffmpeg-location "C:\[ffmpeg path]" %1
echo.
goto:eof