2015-03-31 71 views
1

你好我想创建一个BATCH文件来下载一个日益变化的可变参数URL的MP3文件。我试过使用“bitsadmin”命令,但我必须替换“年”,“月”,“日”,“系列”等不同的变量。MS-DOS命令变量URL下载

任何想法如何做到这一点?

bitsadmin /transfer grlavoro /download /priority normal http://www.radioarticolo1.com/userdata/media/audio/2015/03/20150331grl1800_54986.mp3 d:\grl.mp3 

是否可以做这样的事情?

@ECHO ON 
set series=54986 

set /a c=1 

FOR /F "tokens=1 usebackq" %%i in (%series%) do (
set /a c=c+1 
echo %%i, %c% 
) 

for /f "tokens=1-4 delims=/-. " %%i in ('date /t') do (call :set_date %%i %%j %%k %%l) 
goto :end_set_date 

:set_date 
if "%1:~0,1%" gtr "9" shift 
for /f "skip=1 tokens=2-4 delims=(-)" %%m in ('echo,^|date') do (set %%m=%1&set %%n=%2&set %%o=%3) 
goto :eof 

bitsadmin /transfer grlavoro /download /priority normal http://www.radioarticolo1.com/userdata/media/audio/%yy%/%mm%/%yy%%mm%dd%grl1800_%series%.mp3 d:\grl.mp3 
+0

@SheheilHashemi - 这甚至不能解决他的问题;他试图改变变量,以便他可以下载一些广播节目的所有片段。 – SomethingDark 2015-03-31 22:12:06

+0

这是你尝试过的代码,它不是在做你想要的吗? – SomethingDark 2015-03-31 22:19:46

+0

看看这个http://stackoverflow.com/questions/28143160/how-can-i-download-a-file-with-batch-file-without-using-any-external-tools – npocmaka 2015-04-04 09:41:16

回答

0

wmic os get localdatetime设置日期变量更容易和更少的区域设置相关。

for /f %%I in ('wmic os get localdatetime /format:list ^| find "="') do set "%%I" 
set "YYYYMMDD=%localdatetime:~0,8%" 
set "YYYY=%YYYYMMDD:~0,4%" 
set "MM=%YYYYMMDD:~4,2%" 

此外,它通常最好使用PowerShell的BitsTransfer模块,而不是bitsadmin,因为后者已被弃用,可能在未来的Windows版本中被删除。作为一个好处,你可以用powershell命令获得一个不错的curses风格的进度条。

set "URL=http://www.radioarticolo1.com/userdata/media/audio/%YY%/%MM%/%YYMMDD%grl1800_%series%.mp3" 
powershell "Import-Module BitsTransfer; Start-BitsTransfer %URL% d:\grl.mp3" 

我怕我不明白它是什么你想与你的%series%变量做。在什么情况下,你打算增加多少次?

我看了一下你在榨取的网站。虽然我不懂意大利语,但我确实碰到过podcast archive page。提供下载的所有播客都由ColdFusion脚本提供,该脚本在查询字符串中接受递增的数字。如果您使用他们的audio_download.cfm脚本,则不需要操作日期。您最好使用它,所以您不必尝试将日期与系列号码配对? (你是这个主题的意大利语言专家,我真的在问)