史萊姆論壇

史萊姆論壇 (http://forum.slime.com.tw/)
-   軟體應用問題 Q & A 精華區 (http://forum.slime.com.tw/f126.html)
-   -   請問該如何自動批次下載含日期的http的檔案 (http://forum.slime.com.tw/thread269875.html)

銀燄 2012-04-19 04:28 PM

請問該如何自動批次下載含日期的http的檔案
 
例如來源端是http://218.218.218.218/recback.php?fname=20120418.zip
要如何才能讓電腦每天自動下載"前一天日期"的檔案?
google了一下,找不太到好用的方式:on_22:
可以請各位大大幫忙解答嗎?謝謝!!

pedrowong 2012-04-19 09:50 PM

1:下載文字剪貼程式 Extract,網路存取程式 cURL,
如需指定時間自動下載,CRON 視窗版也需下載。

Extract: http://www.4shared.com/file/YvUZcS_3/Extract.html
cURL: http://curl.haxx.se/
CRON: http://www.kalab.com/freeware/cron/cron.htm

2:將程式解壓縮,放在同一目錄下。
3:製作文字剪貼描述檔 -- Download.src --,將前一天日期,貼入
cURL 下載指令描述中。

'
' 製作 curl http----YYYYMMDD.zip -o YYYYMMDD.zip
'
Comm2 "CURL http://218.218.218.218/recback.php?fname="
'
' 指定時間回調 1440 分鐘 = - 24 小時
'
year -1440 4
month *
day * '.zip -o '
year *
month *
day * '.zip\n'


4:製作批次執行檔(XDownload.cmd)。

rem
rem 無輸入檔,剪貼描述檔為 Download.src , 輸出為 Download.cmd
rem
EXtract "" Download.src Download.cmd
rem 執行 Download.cmd
Download.cmd

=====================================================
5:執行批次執行檔(XDownload.cmd),即可自動下載。

以下說明如何於指定時間自動下載。
1:解壓及安裝 CRON,並且確定,CRON 在系統 Services 下,
設定為自動(開機後自動執行)。
2:製作 CRONTAB 檔案,設定指定時間執行特定批次執行檔。

#
# 記住,有些系統,參數間只能隔一個空白。
#
# <Minute> <Hour> <Day> <Month> <Day of Week> <Command line>
#
# 範例:每天11:45執行

45 11 * * * D:\xxx\XDownload.cmd

3:將 CRONTAB 檔案,複製到 %Windir%/system32 目錄下。

ppp0600 2012-04-19 10:16 PM

SyncBack 這套應該可以試試 有免費中文免安裝版

銀燄 2012-04-20 10:52 AM

TO PPP0600:
檔案下載下來試了一下.找不到有關於檔名為日期自動更改的部份,請問該在那邊設定呢?

TOpedrowong:
看起來挺複雜的,前面兩個檔案都下載下來了,第3個下不來
"製作文字剪貼描述檔 -- Download.src --,將前一天日期,貼入cURL 下載指令描述中。"
是指新開文字檔後改副檔名去做嗎?
還是要用第一個程式去做
如果是,第一個程式我打不開,因檔案全名就只是"extract-"並無副檔名
不知道該怎麼做,所以後面的也卡住不知該怎麼做了

不好意思,可以請您用較淺顯的方式教小弟嗎?感謝

pedrowong 2012-04-20 11:10 PM

這就是 Download.src 描述檔內容
 
'
' 製作 curl http----YYYYMMDD.zip -o YYYYMMDD.zip
'
Comm2 "CURL http://218.218.218.218/recback.php?fname="
'
' 指定時間回調 1440 分鐘 = - 24 小時
'
year -1440 4
month *
day * '.zip -o '
year *
month *
day * '.zip\n'

pedrowong 2012-04-20 11:12 PM

這就是 批次執行檔 XDownload.cmd 的內容
 
rem
rem 無輸入檔,剪貼描述檔為 Download.src , 輸出為 Download.cmd
rem
EXtract "" Download.src Download.cmd
rem 執行 Download.cmd
Download.cmd

pedrowong 2012-04-20 11:19 PM

這就是 CRONTAB 檔案內容
 
#
# 記住,有些系統,參數間只能隔一個空白。
#
# <Minute> <Hour> <Day> <Month> <Day of Week> <Command line>
#
# 範例:每天11:45執行

45 11 * * * D:\xxx\XDownload.cmd

getter 2012-04-21 12:26 AM

迪西做的 cmd 批次檔語法,只能用在 XP 喔
 
迪西做的 cmd 批次檔語法,只能用在 XP 喔

如果要修改 URL 中的站台,或副檔案名稱,就是文中紅字的部份
若有要替換 DOS 模式的下載工具的話則是藍色文字的部份

有關的『 XP CMD 批次檔教學 』語法教學迪西有在本論壇的教學區發表過
可以參考參考 ...

語法:

@echo off
setlocal
color f1
MODE CON COLS=70 LINES=15
Title="自動批次下載前一天日期的http的檔案"

set "year=%date:~0,4%"
set "moon=%date:~5,2%"
set "day=%date:~8,2%"
set "today=%year%%moon%%day%"
set /a "yesterday=%today%-1"


if %day%==01 ( if %moon%==01 (call :ago-year) else ( call :ago-moon ))
 
set "URL=http://218.218.218.218/recback.php?fname=%yesterday%.zip"

echo.&echo. URL
echo. %URL%
echo.&echo.

start /b /wait wget.exe %URL% >nul

endlocal
echo.&echo.
pause
exit


:ago-moon
set /a "moon-=1"
set "moon=0%moon%"
call :bissextile
call :ago-moon-end-day 
set "yesterday=%year%%moon%%days%"
goto :eof


:ago-year
set /a "year-=1"
set "yesterday=%year%1231"
goto :eof


:bissextile
set /a leap_year=%year%-1911
for /l %%n in (%leap_year%,-4,0) do set "leap_year=%%n"
if not %leap_year%==1 set "leap_year=0"
goto :eof


:ago-moon-end-day
if 01==%moon% set "days=31"
if 02==%moon% (if %leap_year%==1 (set days=29) else (set "days=28"))
if 03==%moon% set "days=31"
if 04==%moon% set "days=30"
if 05==%moon% set "days=31"
if 06==%moon% set "days=30"
if 07==%moon% set "days=31"
if 08==%moon% set "days=31"
if 09==%moon% set "days=30"
if 10==%moon% set "days=31"
if 11==%moon% set "days=30"
if 12==%moon% set "days=31"
goto :eof

附上一個檔案 http://cn.ziddu.com/download/651071/123456XXX.rar.html

裡面有兩個當案 ... 一個是 XP 專用的 *.cmd 批次檔,另一個是 DOS 的下載工具

檔案放到免空自己清除 ...

有關自動執行的部份,可以使用系統排程 ... 或是把當案丟到『啟動』裡面試試

銀燄 2012-04-23 10:41 AM

感謝pedrowong及getter兩位大大這麼認真的幫助
小弟終於將問題解決了
由於小弟的程式不是這麼好
因此選擇了getter大大提供的檔案來解決問題
還是很感謝兩位大大如此熱心的幫忙,謝謝!!


所有時間均為台北時間。現在的時間是 06:53 AM

Powered by vBulletin® 版本 3.6.8
版權所有 ©2000 - 2024, Jelsoft Enterprises Ltd.

『服務條款』

* 有問題不知道該怎麼解決嗎?請聯絡本站的系統管理員 *


SEO by vBSEO 3.6.1