Wget / cURL เป็นทางเลือกใหม่สำหรับ Windows หรือไม่?


60

มียูทิลิตีบรรทัดคำสั่งประเภทWgetหรือ cURL ในWindows Vistaหรือไม่? มันทำงานยังไง?


แม้แต่ Microsoft ก็กระจายwget.exeอยู่ใน IIS Administration Pack
Paradroid


1
การใช้ curl เพียงแค่ดาวน์โหลดสิ่งต่าง ๆ ก็เหมือนกับการใช้ vim สำหรับคุณสมบัติ regex แล้วการถามคำถามเกี่ยวกับ vim นั้นซ้ำกับคำถามเกี่ยวกับ regexes ใช่การดาวน์โหลดไฟล์ข้อมูลเป็นส่วนใหญ่ของ HTTP แต่ไม่ใช่วัตถุประสงค์หลัก
erikbwork

ตุลาคม 2017 กับ Windows 8.1: wget และ curl รวมอยู่ใน PowerShell ดังที่แสดงที่นี่: stackoverflow.com/questions/33364752/…
SDsolar

ไม่รุ่น * nix wgetและcurlไม่รวมอยู่ใน PowerShell PowerShell Invoke-WebRequestcmdlet ใช้นามแฝงขณะที่ทั้งสองและwget curlมันทำงานคล้ายกับคำขอขั้นพื้นฐาน แต่มีพารามิเตอร์ที่แตกต่างกันมาก
Mashmagar

คำตอบ:


32

เนทิฟไปที่ Windows (มาพร้อมการติดตั้งล่วงหน้าและขึ้นอยู่กับบริการ Windows Background Intelligent Transfer Service (BITS)):

bitsadmin

มันสามารถทำสิ่งที่ Wget ทำได้และอาจมากกว่านั้น (คุณสามารถควบคุมงานต่อเนื่องผ่านคำสั่งเหมือน API - ตัวอย่างเช่นคุณสามารถรับความเร็วสถานะและยกเลิกหากมันช้าเกินไป)

ตัวอย่างการใช้งานจากประสบการณ์ของฉัน (คุณสามารถทำการดาวน์โหลดแบบขนานใน. bat เดียวกันหรือทำการดาวน์โหลดตามลำดับในงานเดียวกัน):

bitsadmin /create thisissomejobname

bitsadmin /addfile thisissomejobname http://kakao.ro/Pictures.iso C:\john_pictures.iso

bitsadmin /SetCredentials thisissomejobname Server BASIC somehttpuser somehttppassword

bitsadmin /resume thisissomejobname

REM how to get status:
bitsadmin /info thisissomejobname

หมายเหตุ: ใช้งานได้กับ Windows XP, 7, 8 & 10 (ทดสอบบน Windows 10 Pro) ใน Windows XP จะต้องมีการติดตั้งด้วยตนเองจากการติดตั้ง SP2 เครื่องมือสนับสนุน

ใน Windows 10 ล่าสุดคำเตือนการเลิกใช้งานจะหายไปดังนั้นดูเหมือนว่าเครื่องมือที่มีประโยชน์นี้จะอยู่ที่นี่ต่อไป


2
ตรวจสอบ / SetNotifyCmdLine ตัวเลือกถ้าคุณจำเป็นต้องใช้คำสั่งนี้ตามลำดับใน. bat
23911 Tiberiu-Ionuț Stan

5
การเรียกใช้ bitsadmin ภายใต้ Windows 7 แสดงคำเตือนต่อไปนี้: BITSAdmin is deprecated and is not guaranteed to be available in future versions of Windows. Administrative tools for the BITS service are now provided by BITS PowerShell cmdlets.ผู้ใช้ระวัง
yop83

"ขณะนี้มีเครื่องมือการจัดการสำหรับบริการ BITS โดย BITS PowerShell cmdlets" ไม่มีอะไรมากที่จะต้องระวัง ไคลเอ็นต์ BITS เท่านั้นที่เลิกใช้ในขณะที่บริการ BITS จะยังคงอยู่ มันจะสามารถเข้าถึงได้ด้วยอีกอันหนึ่งคล้ายกับการใช้งานไคลเอนต์ (PowerShell จะติดตั้งมาพร้อมกับ Windows รุ่นอนาคต)
Tiberiu-Ionuț Stan

หมายเหตุ: ไคลเอ็นต์ bitsadmin มีอยู่ใน Windows 8 พร้อมคำเตือนการเลิกใช้งานเดียวกัน
Tiberiu-Ionuț Stan

2
ดูเหมือนว่าจะเป็นทางเลือกให้กับตัวจัดการการดาวน์โหลดไม่ใช่สำหรับ Crafter คำขอ HTTP ใช่ไหม
erikbwork

17

PowerShell v3 CTP1 มาพร้อมกับคำสั่งเช่น wget / curl มันเรียกว่าวิงวอน-WebRequest ต้องการเรียนรู้เพิ่มเติมคุณสามารถไปที่การโพสต์Windows PowerShell V3 รวมถึงคำสั่งเช่น wget


2
ฉันเห็นทั้งsuperuser.com/a/25540/106977และsuperuser.com/a/330754/106977อ้างถึงคำสั่ง Powershell ฉันไม่ได้ลองอย่างใดอย่างหนึ่ง แต่ลิงค์เหล่านั้นเกี่ยวข้องกับการโพสต์นี้
bgoodr

นี่เป็นเครื่องมือที่ยอดเยี่ยมและมาพร้อมกับ Windows Server 2012 R2
sfuqua


อย่างที่ทราบInvoke-WebRequestไม่สามารถเพิกเฉยต่อข้อผิดพลาดของใบรับรองได้ (เป็นคุณสมบัติที่มีประโยชน์มากสำหรับนักพัฒนา) อย่างน้อยในเวอร์ชัน 3.0
maxkoryukov

ฉันไม่สามารถInvoke-WebRequestเพิกเฉยต่อข้อผิดพลาดของใบรับรองใน PowerShell 5.1 ได้ แต่เอกสารใน PowerShell 6 มีการSkipCertificateCheckตั้งค่าสถานะ: docs.microsoft.com/en-us/powershell/module/ …
Mashmagar

11

ฉันมักจะใช้ PowerShell สำหรับสิ่งง่าย ๆ เช่นDownloadString ของ WebClient :

$wc = New-Object Net.WebClient
$wc.DownloadString('...')

หรือDownloadFileถ้าคุณต้องการบางสิ่งที่ดาวน์โหลดเช่นwgetนั้นและแพ็คเกจที่ปิดอยู่ในฟังก์ชั่น แน่นอนว่ามันหยาบมากและจะไม่มีสิ่งที่ต้องการเช่นการดาวน์โหลดต่อและที่คล้ายกัน


DownloadFileการใช้ มันทำงานเมื่อฉันพยายามมัน (PowerShell $wc.DownloadFile('http://traffic.libsyn.com/makingembeddedsystems/embedded-ep149.mp3', 'EmbeddedFm_149.mp3')2.0): อย่างไรก็ตามไม่มีข้อมูลความคืบหน้าในระหว่างการดาวน์โหลด
Peter Mortensen

@PeterMortensen: ไม่แน่นอน เป็นเพียงวัตถุ. NET คุณสามารถแนบตัวจัดการเหตุการณ์ที่DownloadProgressChangedแม้ว่า แต่ฉันเดาว่าคุณจะต้องใช้วิธีการต่างๆของ async ด้วย
Joey

6

ดูเหมือนว่าคุณจะต้องดาวน์โหลดเบราว์เซอร์สำรองเท่านั้น คุณสามารถใช้คำสั่งนี้เพื่อดาวน์โหลด Mozilla Firefox ด้วยพรอมต์คำสั่ง:

explorer.exe http://releases.mozilla.org/pub/mozilla.org/firefox/releases/6.0.2/win32/en-US/Firefox%20Setup%206.0.2.exe

สิ่งนี้จะเปิดตัว Internet Explorer แต่จะมีชุดคุณสมบัติพื้นฐานเท่านั้น สิ่งนี้จะใช้ได้แม้ว่า Internet Explorer จะเสีย (ในกรณีส่วนใหญ่)

คุณยังสามารถใช้คำสั่ง FTP พิมพ์คำสั่งต่อไปนี้ลงในคำสั่งพรอมต์คำสั่ง:

  1. ประเภทFTP- ซึ่งจะเปิดไคลเอนต์ FTP
  2. ประเภทopen ftp.mozilla.org- ซึ่งเชื่อมต่อกับ Mozilla-FTP
  3. เพียงเข้าสู่ระบบในนาม Anonymousและใช้รหัสผ่านที่ว่างเปล่า
  4. พิมพ์cd /pub/mozilla.org/firefox/releases/4.0.1/win32/en-US/- หากต้องการเปลี่ยนไดเรกทอรี
  5. ประเภทrecv "Firefox Setup 4.0.1.exe"- เพื่อดาวน์โหลดตัวติดตั้ง Firefox ไฟล์อยู่ในโฟลเดอร์ปัจจุบันของพรอมต์คำสั่ง (โดยปกติจะเป็นProfileโฟลเดอร์ของคุณ)
  6. พิมพ์byeเพื่อปิดไคลเอนต์ FTP
  7. พิมพ์exitเพื่อปิดพรอมต์คำสั่ง

3
คำตอบที่ดี แต่ไม่เกี่ยวข้องกับคำถามที่ถามอย่างสมบูรณ์
พลวง

4
หนอ ดูเหมือนว่าทั้งหัวข้อและตัวอย่างของการใช้ explorer.exe เป็นทางเลือก
Michael Cole

6

ไม่มีทางเลือก Wget จริงๆ คุณสามารถใช้Wget สำหรับ Windowsและกำหนดเส้นทางในตัวแปรสภาพแวดล้อมของคุณเพื่อให้มันทำงานตามที่คุณต้องการ


1
ปัญหาคือคนที่ฉันทำงานด้วยกำลังทำให้เบราว์เซอร์หยุดทำงานและพวกเขาไม่สามารถเข้าถึงคอมพิวเตอร์เครื่องอื่นได้
Jordan

2
หากพวกเขากำลังทำงานผ่านอีเธอร์เน็ตให้พวกเขาบูตเข้าสู่เซฟโหมดที่มีเครือข่าย?
Sandeep Bansal

2

ม้วนพื้นเมืองสำหรับ Windows สามารถใช้ได้ที่นี่ มีรสชาติให้เลือกมากมาย - รองรับ SSL โดยไม่รองรับ SSL คุณไม่ต้องการสัมภาระเพิ่มของCygwinและไลค์ไฟล์ EXE ขนาดเล็กเพียงไฟล์เดียว


1

ฉันแค่ใช้Cygwinและติดตั้งห้องสมุดที่ต้องการ ... ฉันทำอย่างนั้นเสมอ ...

ในอดีตฉันค้นหาทางเลือกใช่ แต่ Cygwin เป็นเพียงเครื่องมือที่ดีที่สุดสำหรับงาน


2
ยกเว้นว่าเป็น overkill ติดตั้ง gazillions ของไฟล์สำหรับการติดตั้ง Cygwin ทั่วไปเพียงเพื่อรับ Wget
Peter Mortensen

คุณได้รับ wget, ขด, ... และอีกมากมาย ฉันคิดว่าถ้าคุณต้องการ wget คุณอาจจะใช้เครื่องมือเพิ่มเติม linux ในอนาคต :) - แน่นอนไม่ screnario ทุกวันแม้ว่า
NicoJuicy

1

ฉันสร้างของตัวเองแล้ว ลองดูได้ที่https://github.com/acarrilho/global (ที่ด้านล่างของหน้า)

ดาวน์โหลดแหล่งที่มาและใช้ cmd.exe นำทางไปยังโฟลเดอร์ผู้ร้องขอ จากนั้นเพียงพิมพ์httpเพื่อดูการตั้งค่าทั้งหมดที่มี ตัวอย่างเช่น:

http -u "http://www.example.com" -oc
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.