0

YouTubeビデオをダウンロードするためのバッチファイルが01-title1.m4a02-title2.m4aなどあります。ビデオ番号nが正常に動作するのに問題があります。 1桁の数字であれば、前にゼロを追加したいが、それを働かせることはできない。バッチ:IFと遅延拡張

私はIF %n%==%n:~0,1% SET n=0!n!FORIF行を変更した場合、それは仕事をしたが、その後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 
) 
+0

問題は、 'n 'に8進数の前にゼロを設定することです。 1から08と09を追加することはできません。代わりに部分文字列を実行してください。 – Squashman

答えて

1
.... 
set /a zn=100+n 
youtube-dl --output "D:\Users\Joakim\Downloads\!zn:~-2!-%%(title)s.%%(ext)s" --extract-audio --format 18 "https://www.youtube.com/watch?v=%%u" 
.... 

set /aその標的変数を設定する引数の値ランタイムを使用するため、znn +100のランタイム値に設定されています。次に、youtube-dl行の最後の2文字をznにします。

関連する問題