2015-03-31 69 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腳本,則不需要操作日期。您最好使用它,所以您不必嘗試將日期與系列號碼配對? (你是這個主題的意大利語言專家,我真的在問)