2011-07-22 26 views
0

我正在使用wget通過HTTP在一個簡單的cmd.exe批處理中使用每個URL的一個wget調用來下載一組文件。是否可以抑制wget嘗試之間的「跳過」行爲?

而且,我的鏡子之間交替隨機,並希望保持獨立的樹,每個鏡,如:

http://server06//files/file1.txt -> temp\server06\files\file1.txt 
http://server03//files/file65.txt -> temp\server03\files\file65.txt 

我現在要做的是:

echo !url! | .\runners\wget.exe --tries=3 --force-directories --directory-prefix=.\temp\ --input-file=- 

有時碰巧的是,對於一些原因,服務器關閉TCP連接。我正在使用--tries=3來解決這個問題。在這種情況下,wget的默認行爲是,它會跳過它已經下載的字節數,並從該點繼續,這樣的事情:

2011-07-19 13:24:52 (68.1 KB/s) - Connection closed at byte 65396. Retrying. 

--2011-07-19 13:24:54-- (try: 3) 
http://server06//files/filex.txt 
Connecting to server|10.10.0.108|:80... failed: Unknown error. 
Resolving server... 10.10.0.108 
Connecting to server|10.10.0.108|:80... connected. 
HTTP request sent, awaiting response... 206 Partial Content 
Length: 166400 (163K), 101004 (99K) remaining [text/plain] 
Saving to: 
`./temp/server06/files/filex.txt' 

     [ skipping 50K ] 
    50K ,,,,,,,,,, ,,,....... .......... .......... .......... 61% 2.65M 0s 
    100K .......... .......... .......... .......... .......... 92% 1.62M 0s 
    150K .......... ..           100% 1.64M=0.06s 

utime(./temp/server06/files/filex.txt): 
Permission denied 
2011-07-19 13:25:15 (1.72 MB/s) - 
`./temp/server06/files/filex.txt' 
saved [166400/166400] 

我的問題是,我不希望wget來下載該文件分爲兩部分。我想讓wget嘗試更多次,但是如果任何嘗試因任何原因失敗,我希望它重新開始(即使不花費任何文件下載)。

背景是,我正在測試過濾器驅動程序中的代碼,只有將文件下載到一個文件時纔會覆蓋該代碼。由於這種行爲,我的測試失敗了。

問題是:是否可以抑制這種行爲?即使wget嘗試儘可能多地通過參數配置,同時在每次嘗試中下載完整文件或零字節?

或者我應該尋找另一種解決方法?

回答

1

我相信你會對the libcurl library感到快樂。每個URL只需要調用一次,libcurl完成剩下的工作。最重要的是,這個軟件包有一流的支持。

您遇到問題的特定情況將不會成爲使用libcurl的問題。

HTH

+0

嗯,我想過捲曲,但我沒有找到如何curl.exe將我的檔案一樣的wget一樣。我隨機交替鏡子,並且我想分開保存它們。 (我要編輯我的文章以反映這一點。) –

+0

不是cURL,而是libcurl,它是一個具有可調用函數的庫(順便提一下,cURL使用此庫)。要使用它,你必須編寫一個小程序,但是libcurl網站上有許多*演示程序,你可以根據自己的使用情況進行調整。 –

+0

好吧,看來我無法避免一點點編程。謝謝,皮特! –

相關問題