Cara mengunduh file dari baris perintah di Windows seperti wget atau curl
348
Bagaimana saya bisa mengunduh sesuatu dari web secara langsung tanpa Internet Explorer atau Firefox membuka Acrobat Reader / Quicktime / MS Word / apa pun?
Saya menggunakan Windows, jadi Wget versi Windows akan melakukannya.
Cukup mengklik kanan file dan menekan "Save Target As" atau "Save Link As" atau "Save As" (bahasa bervariasi tergantung pada browser Anda) akan berfungsi.
BrainSlugs83
25
Inti dari memiliki perintah adalah dapat menulis file batch dan menjalankannya (mungkin dijadwalkan sebagai tugas) kapan saja Anda inginkan. Di situlah GUI gagal.
Jbm
4
Bagaimana cara Anda mengunduh dengan MS Word?
Jaime Hablutzel
5
@JaimeHablutzel Mengapa Anda ingin mengunduh sesuatu melalui MS Word? MS Word bukan terminal.
Braden Terbaik
1
@SDsolar Atau cukup perbarui / tingkatkan jawaban ini di bawah.
GNU Wget adalah utilitas jaringan gratis untuk mengambil file dari World Wide Web menggunakan HTTP dan FTP, dua protokol Internet yang paling banyak digunakan. Ini bekerja secara non-interaktif, sehingga memungkinkan pekerjaan di latar belakang, setelah keluar.
Yang lebih baru, bahkan terkini (hingga hari ini) build Windows , disediakan oleh Jernej Simončič
Gras Double
1
@cixelsyd Tautan yang diperbarui ke sumber alternatif.
clearkimura
1
eternallybored.org/misc/wget/ ditandai oleh antivirus perusahaan di sistem saya. Carbon Black / Bit 9. Mungkin salah positif. Tapi sourceforge berjalan. Tidak mendukung sslv3.
TamusJRoyce
311
Alternatif yang saya temukan baru-baru ini, menggunakan PowerShell:
Jika Anda perlu menentukan kredensial untuk mengunduh file, tambahkan baris berikut di antaranya:
$client.Credentials = Get-Credential
Prompt kredensial windows standar akan muncul. Kredensial yang Anda masukkan di sana akan digunakan untuk mengunduh file. Anda hanya perlu melakukan ini sekali saja selama Anda akan menggunakan objek $ client.
Anda juga dapat melakukannya dalam satu baris:(new-object System.Net.WebClient).DownloadFile('http://www.xyz.net/file.txt','C:\tmp\file.txt')
schellack
16
@Rob powershell terintegrasi ke Windows ...
nhinkle
9
Dari Vista ke atas, ya.
Arran
3
@ BrainSlugs83, tentu saja, tetapi banyak, banyak , orang masih menggunakan XP. Itu hanya sesuatu yang perlu diingat.
Arran
4
@ BrainSlugs83, Anda meremehkan jumlah orang yang masih menggunakan sistem Windows lama. Saya tidak mengerti masalahnya, saya tunjukkan itu hanya pada Vista ke atas. Orang dapat memilih untuk mengabaikannya, atau mengatakan "hei terima kasih!", Tetapi Anda ....? Jika Anda memiliki masalah, buat obrolan dan kami dapat berbicara. Seseorang dengan perwakilan (seperti Anda) harus menyadari di sini bukan tempat untuk diskusi ini.
Arran
83
Jika Anda memiliki PowerShell> = 3.0, Anda dapat menggunakan
Invoke-WebRequest
Ini tidak berfungsi dengan pengalihan di sourceforge (dan mungkin situs lain), yang bertentangan System.Net.WebClient. Namun Anda dapat Invoke-WebRequestbekerja dengan menambahkan -UserAgent [Microsoft.PowerShell.Commands.PSUserAgent]::FireFox.
Ela782
Apakah ada opsi untuk melihat perkembangan pengunduhan?
Franklin Yu
@ FranklinYu kemajuan akan menunjukkan jika file tersebut cukup besar
Steven Penny
Apakah ada pilihan untuk tidak menentukan outfile, tapi masih menyimpan (seperti wgetatau curl -O, curl --remote-nameatau curl -J?)
Tomasz Gandor
60
Windows memiliki utilitas unduh baris perintahnya sendiri - BITSAdmin :
BITSAdmin adalah alat baris perintah yang dapat Anda gunakan untuk membuat unduhan atau mengunggah pekerjaan dan memantau perkembangannya.
Certutil tidak diinstal secara default pada XP / Win2003 tetapi tersedia pada versi windows yang lebih baru. Untuk XP / 2003 Anda akan memerlukan Paket Alat Admin untuk windows server 2003
Menarik. Itu adalah satu bagian dari perangkat lunak yang canggung dibandingkan dengan wget.
Matt H
2
Perhatikan bahwa itu tidak dikirimkan dengan Windows XP, dan mungkin juga tidak dengan versi lain.
Ian Dunn
12
Pembaruan: BITSAdmin sudah usang dan tidak dijamin akan tersedia di versi Windows yang akan datang. Alat administratif untuk layanan BITS sekarang disediakan oleh cmdlet BITS PowerShell.
var WinHttpReq = new ActiveXObject("WinHttp.WinHttpRequest.5.1");
WinHttpReq.Open("GET", WScript.Arguments(0), /*async=*/false);
WinHttpReq.Send();
WScript.Echo(WinHttpReq.ResponseText);
/* To save a binary file use this code instead of previous line
BinStream = new ActiveXObject("ADODB.Stream");
BinStream.Type = 1;
BinStream.Open();
BinStream.Write(WinHttpReq.ResponseBody);
BinStream.SaveToFile("out.bin");
*/
Bahasa apa yang digunakan skrip ini? Terlihat berguna untuk tugas saya saat ini. Saya ingin mencari lebih banyak dokumentasi referensi. Tidak terlihat seperti vb
G-.
1
Berguna untuk file tunggal. Perlu ditingkatkan untuk unduhan berulang dan https.
Opticyclic
4
@ G-. Saya terlambat ke pesta, tapi itu JavaScript.
dan sepertinya akan berfungsi tetapi apa yang sebenarnya dilakukannya hanya menggunakan cURL sebagai alias. Dalam contoh di atas, apa yang akan terjadi adalah Anda hanya akan mendapatkan header, bukan file itu sendiri.
Alias di PowerShell memungkinkan Anda membuat pintasan untuk perintah yang lebih lama sehingga Anda tidak perlu mengetikkannya sepanjang waktu.
Jika Anda mengetikkan perintah Get-Alias, itu akan memberi Anda daftar semua Alias yang digunakan di PowerShell. Seperti yang Anda lihat, perintah curl hanya memanggil perintah Invoke-WebRequest. Mereka serupa tetapi tidak sama yang mengapa permintaan di atas tidak bekerja untuk kita.
Agar ini berfungsi dengan benar di PowerShell, cara termudah adalah dengan menggunakan variabel dan -OutFileargumen seperti yang ditunjukkan di sini:
Sintaks ini akan mengunduh konten lengkap dari file target azuredeploy.jsonke file lokalnewfile.json
Keuntungan utama adalah bahwa ia dibangun ke dalam Powershell sendiri sehingga kode ini akan dieksekusi langsung tanpa unduhan atau kreasi file tambahan lainnya diperlukan untuk membuatnya berfungsi pada versi Windows modern.
Hal ini dilakukan secara langsung pada satu baris, tetapi garis tersebut menjadi cukup panjang dan tidak segera dibaca sekilas.
SDsolar
21
Saya membuat file myGet.bat cepat yang memanggil metode PowerShell yang dijelaskan di atas.
@Echo OFF
SetLocal EnableDelayedExpansion
Set Var=%1
Set Var=!Var:http://=!
Set Var=!Var:/=,!
Set Var=!Var:%%20=?!
Set Var=!Var: =?!
Call :LOOP !var!
Echo.Downloading: %1 to %~p0!FN!
powershell.exe -Command (new-object System.Net.WebClient).DownloadFile('%1','%~p0!FN!')
GoTo :EOF
:LOOP
If "%1"=="" GoTo :EOF
Set FN=%1
Set FN=!FN:?= !
Shift
GoTo :LOOP
mengapa downvote? ini terlihat oke bagi saya dan merupakan jawaban langsung terhadap pertanyaan tersebut. Ya itu kikuk dan dapat menggunakan peningkatan, seperti melarikan diri ampersand (&) di url, tetapi berfungsi sebagaimana mestinya.
matt wilkie
Bukankah lebih mudah menulis skrip PowerShell saja ???
SamB
1
powershell.exe -Command "Invoke-WebRequest -OutFile ./file-name https://location/file-name"<- Sederhana satu baris mendukung penggunaan dalam file skrip lokasi pengkodean yang sulit dan nama file.
James Eby
8
Saya sedang mencari yang sama, dan karena saya tidak punya hak istimewa untuk menginstal salah satu paket di atas, saya mencari solusi kecil (untuk mengunduh 30 file +):
Kegagalan itu, Wget for Windows, seperti yang ditunjukkan orang lain jelas merupakan pilihan terbaik kedua. Seperti yang diposting di jawaban lain, sepertinya Anda dapat mengunduh Wget dengan sendirinya , atau Anda dapat mengambilnya sebagai bagian dari Cygwin atau MSys .
Jika karena alasan tertentu, Anda menemukan diri Anda terjebak dalam waktu bengkok, menggunakan mesin yang tidak memiliki PowerShell dan Anda tidak memiliki akses ke browser web yang berfungsi (yaitu, Internet Explorer adalah satu-satunya browser di sistem, dan pengaturannya rusak), dan file Anda ada di situs FTP (tidak seperti HTTP):
start->run "FTP", press "OK".
Jika memori berfungsi sudah ada di sana sejak Windows 98, dan saya dapat mengkonfirmasi bahwa itu masih ada di Windows 8 RTM (Anda mungkin harus masuk appwiz.cpldan menambahkan / menghapus fitur untuk mendapatkannya). Utilitas ini dapat mengunduh dan mengunggah file ke / dari situs FTP di web. Itu juga dapat digunakan dalam skrip untuk mengotomatisasi operasi mana pun.
Alat ini adalah alat bawaan untuk saya di masa lalu, terutama di masa-masa ftp.cdrom.com - Saya mengunduh Firefox dengan cara itu sekali, pada mesin yang benar-benar rusak yang hanya memiliki Internet dial-up koneksi (kembali ketika ukuran paket maksimum sneakernet masih 1,44 MB, dan Firefox masih disebut "Netscape" / saya tidak trollface ).
Beberapa tips: ini adalah prosesor perintahnya sendiri, dan memiliki sintaksnya sendiri. Coba ketikkan "bantuan". Semua situs FTP memerlukan nama pengguna dan kata sandi; tetapi jika mereka mengizinkan pengguna "anonim", nama pengguna adalah "anonim" dan kata sandinya adalah alamat email Anda (Anda dapat memperbaikinya jika Anda tidak ingin dilacak, tetapi biasanya ada semacam logika untuk memastikannya alamat email yang valid).
+1 untuk memikirkan ftp baris perintah! Namun wget dan PowerShell disebutkan dengan baik sebelum Anda bergabung dengan pesta, jadi -1 di sana. : - /
matt wilkie
Jawaban PowerShell lainnya yang saya lihat semuanya multi-liner dan / atau memiliki beberapa bau kode - ini adalah liner pendek & sederhana untuk mengunduh file. - Juga saya ingin memberikan jawaban yang mencakup semua pangkalan. :-)
BrainSlugs83
1
Saya tidak yakin mengapa Anda memiliki dua tanda tanya di file tujuanC:\tmp\file.tx??t
Ploni
3
Cygwin memiliki Wget (dan banyak utilitas lainnya).
Anda juga bisa menggunakan wgetpaket yang ada di PowerShell . ; ^) Untuk membuka, tekan tombol Windows dan ketik "PowerShell" atau Windows-R dan ketik "PowerShell" dan tekan kembali.
Tidak diperlukan instalasi.
Satu perbedaan menarik dari konvensional wget(lebih banyak pada tautan itu ): Anda tidak bisa hanya menggunakan yang lebih besar daripada untuk mem-pipe ke file. wgetdi PowerShell hanyalah pembungkus kenyamanan untuk Invoke-WebRequest, dan Anda perlu menggunakan sintaksnya untuk menulis ke file.
Anda bisa mendapatkan WGet untuk Windows di sini . Atau Anda dapat mengklik kanan tautan unduhan dari item yang ingin Anda unduh dan pilih Simpan Sebagai. Ini akan mengunduh file dan tidak membukanya di aplikasi yang ditugaskan.
Saat ini ada Bitsadmin.exe, Certutil.exe, Esentutl.exe, Expand.exe, Extrac32.exe, Findstr.exe, Hh.exe, Ieexec.exe, Makecab.exe, Replace.exeuntuk Windows vista, Windows 7, Windows 8, Windows 8.1, Windows 10 dan versi Server setara.
Anda dapat mengelola dengan unxutils tetapi sudah tua, ia menggunakan versi lama wget. gnuwin32 adalah hal yang digunakan. tidak cukup nyaman untuk diinstal dan tidak mudah untuk menemukan hal-hal, tetapi memiliki lebih dari unxutils juga.
barlop
-3
Jika Anda membutuhkan visual yang Post untuk Windows, di sini adalah salah satu.
Anda dapat memposting data atau file dengannya.
Jawaban:
Wget untuk Windows seharusnya berfungsi.
Dari FAQ Wget Wiki :
Dari bagian FAQ ini , tautan unduhan disarankan:
Tautan dengan izin dari Jernej Simončič digunakan sebagai gantinya.
sumber
Alternatif yang saya temukan baru-baru ini, menggunakan PowerShell:
Ini juga berfungsi dengan GET kueri.
Jika Anda perlu menentukan kredensial untuk mengunduh file, tambahkan baris berikut di antaranya:
Prompt kredensial windows standar akan muncul. Kredensial yang Anda masukkan di sana akan digunakan untuk mengunduh file. Anda hanya perlu melakukan ini sekali saja selama Anda akan menggunakan objek $ client.
sumber
(new-object System.Net.WebClient).DownloadFile('http://www.xyz.net/file.txt','C:\tmp\file.txt')
Jika Anda memiliki PowerShell> = 3.0, Anda dapat menggunakan Invoke-WebRequest
Atau bermain golf
Unduh file melalui HTTP di Windows
sumber
System.Net.WebClient
. Namun Anda dapatInvoke-WebRequest
bekerja dengan menambahkan-UserAgent [Microsoft.PowerShell.Commands.PSUserAgent]::FireFox
.wget
ataucurl -O
,curl --remote-name
ataucurl -J
?)Windows memiliki utilitas unduh baris perintahnya sendiri - BITSAdmin :
EDIT : 26.01.15 - Inilah ikhtisar saya tentang bagaimana suatu file dapat diunduh di windows tanpa alat eksternal
Dan contoh bitadmin lengkap:
Sunting : 15.05.2018 - ternyata itu mungkin untuk mengunduh file dengan certutil juga :
Certutil tidak diinstal secara default pada XP / Win2003 tetapi tersedia pada versi windows yang lebih baru. Untuk XP / 2003 Anda akan memerlukan Paket Alat Admin untuk windows server 2003
sumber
Simpan teks berikut ini
wget.js
dan panggil sajaIni kodenya:
sumber
Ada cURL asli untuk Windows yang tersedia di sini . Ada banyak rasa yang tersedia - dengan dan tanpa dukungan SSL.
Anda tidak perlu bagasi ekstra Cygwin dan sejenisnya, cukup satu file EXE kecil.
Penting juga untuk mengetahui bahwa ada keduanya
wget
dancurl
alias yang dibangun di semua versi modern Windows Powershell. Mereka setara.Tidak diperlukan file atau unduhan tambahan untuk mendapatkan
wget
fungsionalitas:Menggunakan Curl In Powershell (The Sociable Geek)
Kutipan:
Agar ini berfungsi dengan benar di PowerShell, cara termudah adalah dengan menggunakan variabel dan
-OutFile
argumen seperti yang ditunjukkan di sini:Sintaks ini akan mengunduh konten lengkap dari file target
azuredeploy.json
ke file lokalnewfile.json
Keuntungan utama adalah bahwa ia dibangun ke dalam Powershell sendiri sehingga kode ini akan dieksekusi langsung tanpa unduhan atau kreasi file tambahan lainnya diperlukan untuk membuatnya berfungsi pada versi Windows modern.
sumber
Saya membuat file myGet.bat cepat yang memanggil metode PowerShell yang dijelaskan di atas.
Saya meminjam beberapa kode dari Parsing URL untuk nama file dengan spasi .
sumber
powershell.exe -Command "Invoke-WebRequest -OutFile ./file-name https://location/file-name"
<- Sederhana satu baris mendukung penggunaan dalam file skrip lokasi pengkodean yang sulit dan nama file.Saya sedang mencari yang sama, dan karena saya tidak punya hak istimewa untuk menginstal salah satu paket di atas, saya mencari solusi kecil (untuk mengunduh 30 file +):
firefox.exe
di awal setiap barisProgram Files
sumber
Jika PowerShell adalah sebuah opsi, itu rute yang disukai, karena Anda (berpotensi) tidak perlu menginstal tambahan apa pun:
Kegagalan itu, Wget for Windows, seperti yang ditunjukkan orang lain jelas merupakan pilihan terbaik kedua. Seperti yang diposting di jawaban lain, sepertinya Anda dapat mengunduh Wget dengan sendirinya , atau Anda dapat mengambilnya sebagai bagian dari Cygwin atau MSys .
Jika karena alasan tertentu, Anda menemukan diri Anda terjebak dalam waktu bengkok, menggunakan mesin yang tidak memiliki PowerShell dan Anda tidak memiliki akses ke browser web yang berfungsi (yaitu, Internet Explorer adalah satu-satunya browser di sistem, dan pengaturannya rusak), dan file Anda ada di situs FTP (tidak seperti HTTP):
Jika memori berfungsi sudah ada di sana sejak Windows 98, dan saya dapat mengkonfirmasi bahwa itu masih ada di Windows 8 RTM (Anda mungkin harus masuk
appwiz.cpl
dan menambahkan / menghapus fitur untuk mendapatkannya). Utilitas ini dapat mengunduh dan mengunggah file ke / dari situs FTP di web. Itu juga dapat digunakan dalam skrip untuk mengotomatisasi operasi mana pun.Alat ini adalah alat bawaan untuk saya di masa lalu, terutama di masa-masa ftp.cdrom.com - Saya mengunduh Firefox dengan cara itu sekali, pada mesin yang benar-benar rusak yang hanya memiliki Internet dial-up koneksi (kembali ketika ukuran paket maksimum sneakernet masih 1,44 MB, dan Firefox masih disebut "Netscape" / saya tidak trollface ).
Beberapa tips: ini adalah prosesor perintahnya sendiri, dan memiliki sintaksnya sendiri. Coba ketikkan "bantuan". Semua situs FTP memerlukan nama pengguna dan kata sandi; tetapi jika mereka mengizinkan pengguna "anonim", nama pengguna adalah "anonim" dan kata sandinya adalah alamat email Anda (Anda dapat memperbaikinya jika Anda tidak ingin dilacak, tetapi biasanya ada semacam logika untuk memastikannya alamat email yang valid).
sumber
C:\tmp\file.tx??t
Cygwin memiliki Wget (dan banyak utilitas lainnya).
sumber
Dan http://www.httrack.com/ memiliki GUI yang bagus (dan gratis), untuk mirroring sites. Ini juga memiliki versi Linux.
sumber
Anda juga bisa menggunakan
wget
paket yang ada di PowerShell . ; ^) Untuk membuka, tekan tombol Windows dan ketik "PowerShell" atau Windows-R dan ketik "PowerShell" dan tekan kembali.Tidak diperlukan instalasi.
Satu perbedaan menarik dari konvensional
wget
(lebih banyak pada tautan itu ): Anda tidak bisa hanya menggunakan yang lebih besar daripada untuk mem-pipe ke file.wget
di PowerShell hanyalah pembungkus kenyamanan untukInvoke-WebRequest
, dan Anda perlu menggunakan sintaksnya untuk menulis ke file.sumber
-OutFile
melakukan pekerjaan!Anda bisa mendapatkan WGet untuk Windows di sini . Atau Anda dapat mengklik kanan tautan unduhan dari item yang ingin Anda unduh dan pilih Simpan Sebagai. Ini akan mengunduh file dan tidak membukanya di aplikasi yang ditugaskan.
sumber
Saya pikir menginstal
wget
melalui Chocolatey adalah cara termudah.choco install wget
wget
dari baris perintah seperti pada sistem * nix.sumber
Cari
/download
fungsi di https://lolbas-project.github.io .Saat ini ada
Bitsadmin.exe
,Certutil.exe
,Esentutl.exe
,Expand.exe, Extrac32.exe
,Findstr.exe
,Hh.exe
,Ieexec.exe
,Makecab.exe
,Replace.exe
untuk Windows vista, Windows 7, Windows 8, Windows 8.1, Windows 10 dan versi Server setara.sumber
Jika Anda menginginkan GUI, cobalah VisualWget , yang sebenarnya bersih, dan fitur penuh. Ini didasarkan pada GNU Wget untuk mesin unduhannya.
EDIT: tautan yang diperbarui.
sumber
Seperti yang didokumentasikan dalam jawaban SU ini , Anda dapat menggunakan yang berikut di Powershell:
sumber
Alternatif untuk menggunakan gnuwin32 adalah unxutils yang menyertakan wget.
sumber
Jika Anda membutuhkan visual yang Post untuk Windows, di sini adalah salah satu.
Anda dapat memposting data atau file dengannya.
sumber