使用CMD下載HTTP檔案連結辦法 WGET、VBS 超級詳解、單CMD也可以下載檔案!!



我想很多人對CMD如何下載檔案感到好奇,

其實主要有兩種方式...

使用WGET、VBS兩種方式可以下載,

FTP不能下載HTTP在此不提~

但是網路上的說明還沒有一致的辦法,

糖果弄了一個只有單CMD就可以下載檔案的辦法喔!!

所以糖果就來整理一下三大方式~

WGET的使用方式

首先我們來介紹WGET的優缺點,

WGET的優點:

  1. 可以設定等待時間
  2. 可以設定重試次數
  3. 可以指定檔案名稱
  4. 可以下載轉址
  5. 可以下在HTTPS等等許許多多協定、FTP也含在內
  6. 會顯示下載進度、速度、剩餘時間

WGET的缺點:

  1. 需要下載wget.exe因為Windows沒有內建...
  2. 這下出現雞生蛋、還是蛋生雞的問題,沒有wget.exe就不能下載其他檔案...
  3. 檔案佔空間,比起純文字的CMD他確實大多了...

 wget.exe檔案下載點

users.ugent.be空間:

http://users.ugent.be/~bpuype/wget/

下載檔案後需與CMD文件放在一起

CMD內容

wget -t 1 -T 1 -O index.txt http://candy-sky.net/
pause

說明:-t是重試次數1次、-T是逾時時間1秒、-O指定檔名

VBS的使用方式

VBS的優點:

  1. 可以指定檔案名稱
  2. 可以下載轉址
  3. 檔案體積超小
  4. 不需要先下載exe檔案

VBS的缺點:

  1. 需要調用VBS...
  2. 如果想要共用函示庫需要好幾行CMD程式碼
  3. 沒辦法顯示下載進度與時間,大檔案容易誤會卡住
  4. 不能設定重試次數與逾時時間
  5. 雖然不需要exe檔案但是還是要用cmd預先生成vbs文件

不共用down.vbs檔案直接調用的方式

這是用在只有一個檔案要下載的時候~

down.vbs內容

Download "http://candy-sky.net/", "index.txt"
Function Download(strUrl, strFile)
Set xPost = CreateObject("MSXML2.ServerXMLHTTP")
xPost.Open "GET", strUrl,0
xPost.Send()
Set sGet = CreateObject("ADODB.Stream")
sGet.Mode = 3
sGet.Type = 1
sGet.Open()
sGet.Write(xPost.responseBody)
sGet.SaveToFile strFile,2
End Function

說明:Download "網址", "檔名",其他不要亂改XD

CMD內容

down.vbs
pause

只是呼叫所以沒有甚麼好說明XD

共用down.vbs檔案直接調用的方式

這是用在很多檔案要下載的時候~

有需要請自己寫迴圈XD

down.vbs內容

Function Download(strUrl, strFile)
Set xPost = CreateObject("MSXML2.ServerXMLHTTP")
xPost.Open "GET", strUrl,0
xPost.Send()
Set sGet = CreateObject("ADODB.Stream")
sGet.Mode = 3
sGet.Type = 1
sGet.Open()
sGet.Write(xPost.responseBody)
sGet.SaveToFile strFile,2
End Function

請原封不動不要亂改,他是被用來合併用的~

CMD內容

echo Download "http://candy-sky.net/", "index.txt">rundown.vbs
type down.vbs>>rundown.vbs
rundown.vbs
del /f /q "rundown.vbs"
pause

說明:echo Download "網址", "檔名">rundown.vbs

單獨CMD檔案直接調用的方式

這是用在想要維持單一CMD檔案的時候~

CMD內容

echo Download "http://candy-sky.net/", "index.txt" >rundown.vbs
echo Function Download(strUrl, strFile) >>rundown.vbs
echo Set xPost = CreateObject("MSXML2.ServerXMLHTTP") >>rundown.vbs
echo xPost.Open "GET", strUrl,0 >>rundown.vbs
echo xPost.Send() >>rundown.vbs
echo Set sGet = CreateObject("ADODB.Stream") >>rundown.vbs
echo sGet.Mode = 3 >>rundown.vbs
echo sGet.Type = 1 >>rundown.vbs
echo sGet.Open() >>rundown.vbs
echo sGet.Write(xPost.responseBody) >>rundown.vbs
echo sGet.SaveToFile strFile,2 >>rundown.vbs
echo End Function >>rundown.vbs
rundown.vbs
del /f /q "rundown.vbs"
pause

說明:echo Download "網址", "檔名">rundown.vbs

總結

我想各位很久沒看到糖果的技術性文章了吧XD...

所以我就來寫一下了,

因為我看到網路上對於CMD如何下載檔案的方式說明極少~

我就把糖果用的幾種方式分享給大家,

方便大家CMD寫出自動更新模式XD

希望對大家有幫助,在此拋磚引玉~

希望有人某天可以研究出來更好的寫法!!



2 則迴響於“使用CMD下載HTTP檔案連結辦法 WGET、VBS 超級詳解、單CMD也可以下載檔案!!

發表迴響

你的電子郵件位址並不會被公開。 必要欄位標記為 *

你可以使用這些 HTML 標籤與屬性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>