在批处理脚本中的变量内部传递for参数


set vid1=asd  
set vid2=fgh
for /L %%1 in (1,1,2) do (echo %vid%%1%)
pause

在我的批处理文件中不起作用,请帮助

我需要的是cmd首先解析"%%"1〃;是1、2或其它;然后解析CCD_ 1。

我认为这是一个更大的问题;变量内部的变量";,因为这也不起作用:

set asd=1  
set vid1=qwe
echo %vid%asd%%

我应该使用delayedexpansion:

setlocal EnableDelayedExpansion
set vid1=asd
set vid2=qwe
for /L %%i in (1,1,3) do (echo !vid%%i!)
pause

也可以在没有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

完整的脚本(它很臃肿,因为我在尝试是否可以做一些事情(:

@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

最新更新