首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MS-DOS命令变量URL下载

MS-DOS命令变量URL下载
EN

Stack Overflow用户
提问于 2015-04-01 05:28:02
回答 1查看 402关注 0票数 1

你好,我想创建一个批处理文件来下载一个mp3文件,该文件的可变参数地址每天都在增加。我尝试使用"bitsadmin“命令,但我不得不替换不同的变量,如”年“、”月“、”日“、”系列“。

你知道该怎么做吗?

代码语言:javascript
复制
bitsadmin /transfer grlavoro /download /priority normal http://www.radioarticolo1.com/userdata/media/audio/2015/03/20150331grl1800_54986.mp3 d:\grl.mp3

有没有可能做这样的事情?

代码语言:javascript
复制
@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
EN

回答 1

Stack Overflow用户

发布于 2015-04-01 20:44:39

wmic os get localdatetime中设置日期变量更容易,而且对语言环境的依赖性更小。

代码语言:javascript
复制
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模块通常比使用bitsadmin更可取,因为后者将被弃用,并可能在未来的BitsTransfer版本中被删除。附带的好处是,您可以使用powershell命令获得一个很好的curses样式的进度条。

代码语言:javascript
复制
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脚本,则不需要进行日期操作。你最好使用它,这样你就不必尝试将日期与序列号配对了?(您是本文中的意大利语专家。我诚心诚意地请求您。)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29378910

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档