0
YouTubeビデオをダウンロードするためのバッチファイルが01-title1.m4a
、02-title2.m4a
などあります。ビデオ番号n
が正常に動作するのに問題があります。 1桁の数字であれば、前にゼロを追加したいが、それを働かせることはできない。バッチ:IFと遅延拡張
私はIF %n%==%n:~0,1% SET n=0!n!
にFOR
でIF
行を変更した場合、それは仕事をしたが、その後n
の初期値のみが比較に使用されます。しかしの直前にecho !n!==!n:~0,1!
を置くと、1==1
,2==2
が期待通りになります。
:: Enter YouTube link including https, or just the video ID
@ECHO OFF
SETLOCAL ENABLEDELAYEDEXPANSION
SET url_list=
:loop
SET url=
SET /P url="Enter URL: "
SET url="%url%"
IF %url%=="" GOTO endloop
IF %url%=="%url:~1,11%" (SET url=%url:~1,11%) ELSE SET url=%url:~33,11%
SET url_list=%url_list% %url%
GOTO loop
:endloop
SET url_list=%url_list:~1%
SET /P n="Enter n: "
IF [%n%] == [] SET n=1
FOR %%u IN (%url_list%) DO (
IF !n!==!n:~0,1! SET n=0!n!
youtube-dl --output "D:\Users\Joakim\Downloads\!n!-%%(title)s.%%(ext)s" --extract-audio --format 18 "https://www.youtube.com/watch?v=%%u"
SET /A n+=1
)
問題は、 'n 'に8進数の前にゼロを設定することです。 1から08と09を追加することはできません。代わりに部分文字列を実行してください。 – Squashman