MS-DOS命令变量URL下载

时间:2015-03-31 21:28:02

标签: variables batch-file auto-increment str-replace

您好我想创建一个BATch文件来下载一个mp3文件,该文件的变量参数URL每天都在变化。我试过使用" bitsadmin"命令,但我要替换不同的变量,如"年","月","日","系列"。

任何想法怎么做?

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

1 个答案:

答案 0 :(得分: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脚本,则无需日期操作。您是否更愿意使用它,因此您不必尝试将日期与序列号配对? (你是这个主题的意大利语专家。我真的在问。)