在 Windows 上我创建了ydl.bat
接受 url 的文件。
youtube-dl.exe -f 140 %1
我想要做的是,?
如果传递的 url 是这样的,则删除所有内容https://youtu.be/1j6muwUGXw?list=RDK2_g8u0bUc
我可以用 python 来做,但我相信如果我们在 windows 中务实地做的话步骤会更少
答案1
以下是关于如何实现这一目标的一个想法:
@echo off
setlocal EnableDelayedExpansion
Set url=%1
if "%url%"=="" set url=https://youtu.be/1j6muwUGXw?list=RDK2_g8u0bUc
echo Old Url: %url%
echo.
:GetLength
set /a Lenght+=1
if /i not "!url:~0,-%Lenght%!"=="" goto :GetLength
for /l %%a in (0,1,%Lenght%) do (
if /i "!url:~%%a,1!"=="?" set url=!url:~0,%%a! & goto :next
)
:next
echo New Url: %url%
echo.
pause
Exit
答案2
使用?
作为分隔符并仅使用第一个标记的字符:
for /f delims^=? %%i in ("%~1")do youtube-dl.exe -f 140 %%i
缩短链接的替代方案:
如何使用以下方法获取缩短 URL 背后的真实 URLcURL
@echo off
for /f tokens^=2 %%i in ('%__APPDIR__%curl.exe -sLI "%~1"^|find "Location:"
')do for /f tokens^=1delims^=^& %%Y in ('echo\"%%~i"')do youtube-dl.exe -f 140 %%Y