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.