Wget / cURL thay thế bản địa cho Windows?


60

Có tiện ích dòng lệnh loại Wget hoặc cURL nào có trong Windows Vista không? Làm thế nào nó hoạt động?


Ngay cả Microsoft cũng phân phối wget.exetrong Gói quản trị IIS.
paradroid


1
Sử dụng curl chỉ để tải xuống mọi thứ cũng giống như sử dụng vim chỉ cho tính năng regex và sau đó nói một câu hỏi về vim là một bản sao cho một câu hỏi về regexes. Có, tải xuống tệp dữ liệu là một phần rất lớn của HTTP nhưng nó không phải là mục đích chính của nó.
erikbwork

Tháng 10 năm 2017 với Windows 8.1: wget và curl được bao gồm trong PowerShell, như được hiển thị ở đây: stackoverflow.com/questions/33364752/iêu
SDsolar

Không, * nix phiên bản wgetcurlkhông được bao gồm trong PowerShell. Invoke-WebRequestLệnh ghép ngắn PowerShell được đặt bí danh là cả hai wgetcurl. Nó hoạt động tương tự cho các yêu cầu rất cơ bản, nhưng có các tham số khác nhau đáng kể.
Mashmagar

Câu trả lời:


32

Bản địa của Windows (được cài đặt sẵn và phụ thuộc vào Dịch vụ chuyển giao thông minh nền (BITS) của Windows):

BITSAdmin

Nó có thể làm những gì Wget làm, và có thể hơn thế nữa (bạn có thể kiểm soát công việc đang diễn ra thông qua các lệnh giống như API - ví dụ: bạn có thể nhận được tốc độ trạng thái và hủy nếu quá chậm).

Sử dụng ví dụ từ trải nghiệm của riêng tôi (bạn có thể thực hiện tải xuống song song trong cùng một .bat hoặc thực hiện tải xuống tuần tự trong cùng một công việc):

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

Lưu ý: Nó hoạt động trên Windows XP, 7, 8 & 10 (đã thử nghiệm trên Windows 10 Pro). Trên Windows XP, nó phải được cài đặt thủ công từ Công cụ hỗ trợ SP2 .

Trên Windows 10 mới nhất, cảnh báo không dùng nữa, vì vậy có vẻ như công cụ hữu ích này sẽ tồn tại.


2
hãy xem tùy chọn / SetNotifyCmdLine nếu bạn cần sử dụng lệnh này một cách tuần tự trong một .bat
Tiberiu-Ionuț Stan

5
Chạy bitsadmin trong Windows 7 sẽ hiển thị cảnh báo sau: 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.Người dùng hãy cẩn thận.
yop83

"Các công cụ quản trị cho dịch vụ BITS hiện được cung cấp bởi các lệnh ghép ngắn BITS PowerShell." Không có gì nhiều để coi chừng. Chỉ khách hàng BITS không được chấp nhận, trong khi dịch vụ BITS sẽ vẫn còn. Nó có thể được truy cập bằng một ứng dụng khách khác, có chức năng tương tự (PowerShell sẽ được cài đặt sẵn với các phiên bản Windows trong tương lai).
Tiberiu-Ionuț Stan

Lưu ý: Ứng dụng khách bitadmin có trong Windows 8, với cùng cảnh báo không dùng nữa.
Tiberiu-Ionuț Stan

2
Điều này trông giống như một giải pháp thay thế cho trình quản lý tải xuống, không phải là một yêu cầu HTTP, phải không?
erikbwork

17

PowerShell v3 CTP1 đi kèm với một lệnh như wget / curl. Nó được gọi là Invoke-WebRequest . Để tìm hiểu thêm, bạn có thể truy cập bài đăng Windows Powershell V3 bao gồm lệnh như wget / curl .


2
Tôi thấy cả superuser.com/a/25540/106977superuser.com/a/330754/106977 đề cập đến các lệnh Powershell. Tôi chưa từng thử một trong số chúng, nhưng những liên kết đó có liên quan đến bài đăng này.
bgoodr

Đây là một tiện ích tuyệt vời và đi kèm với Windows Server 2012 R2.
sfuqua


Như tôi biết, Invoke-WebRequestkhông thể bỏ qua lỗi chứng chỉ (một tính năng rất hữu ích cho các nhà phát triển). Ít nhất là trong phiên bản 3.0
maxkoryukov

Tôi không thể Invoke-WebRequestbỏ qua lỗi chứng chỉ trong PowerShell 5.1, nhưng tài liệu trong PowerShell 6 bao gồm một SkipCertificateCheckcờ: docs.microsoft.com/en-us/powershell/module/ trộm
Mashmagar 16/07/18

11

Tôi thường sử dụng PowerShell cho những việc đơn giản, như DownloadString của WebClient :

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

Hoặc DownloadFilenếu bạn muốn một cái gì đó được tải xuống như wgethiện và gói nó vào một chức năng. Tất nhiên, điều này rất thô sơ và sẽ không có bất kỳ tính năng nào như tải xuống có thể tiếp tục và tương tự.


Sử dụng DownloadFile. nó hoạt động khi tôi dùng thử (PowerShell 2.0) : $wc.DownloadFile('http://traffic.libsyn.com/makingembeddedsystems/embedded-ep149.mp3', 'EmbeddedFm_149.mp3'). Tuy nhiên, không có thông tin tiến độ trong quá trình tải xuống.
Peter Mortensen

@PeterMortensen: Tất nhiên là không. Nó chỉ là một đối tượng .NET. Bạn có thể đính kèm một trình xử lý sự kiện DownloadProgressChanged, mặc dù. Nhưng tôi đoán sau đó bạn cũng sẽ cần sử dụng các biến thể không đồng bộ của các phương thức.
Joey

6

Có vẻ như bạn chỉ cần tải xuống một trình duyệt thay thế. Bạn có thể sử dụng lệnh này để tải xuống Mozilla Firefox với dấu nhắc lệnh:

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

Điều này cũng khởi chạy Internet Explorer, nhưng chỉ với một bộ tính năng cơ bản. Điều này sẽ hoạt động ngay cả khi Internet Explorer bị hỏng (trong hầu hết các trường hợp).

Bạn cũng có thể sử dụng lệnh FTP. Nhập nội dung sau vào các lệnh nhắc lệnh:

  1. Loại FTP- Mở ứng dụng khách FTP
  2. Loại open ftp.mozilla.org- Kết nối với Mozilla-FTP
  3. Chỉ cần đăng nhập là Ẩn danh và sử dụng mật khẩu trống.
  4. Loại cd /pub/mozilla.org/firefox/releases/4.0.1/win32/en-US/-Để thay đổi thư mục
  5. Nhập recv "Firefox Setup 4.0.1.exe"- Để tải xuống trình cài đặt Firefox. Các tập tin được đặt trong thư mục hiện tại của dấu nhắc lệnh. (thường là Profilethư mục của bạn )
  6. Nhập byeđể đóng ứng dụng khách FTP
  7. Nhập exitđể đóng dấu nhắc lệnh.

3
Câu trả lời hay, nhưng hoàn toàn không liên quan đến câu hỏi.
Antimon

4
Ừm. Có vẻ cả chủ đề và một ví dụ về việc sử dụng explorer.exe như là một thay thế.
Michael Cole

6

Không có Wget thay thế thực sự. Bạn có thể sử dụng Wget cho Windows và gán đường dẫn trong các biến môi trường của bạn để làm cho nó hoạt động như bạn muốn.


1
Vấn đề là, người tôi đang làm việc đang bị đóng băng trình duyệt khi họ khởi chạy và họ không có quyền truy cập vào máy tính khác.
Jordan

2
Nếu họ đang chạy qua ethernet, hãy để họ khởi động vào chế độ an toàn với mạng?
Sandeep Bansal

2

CURL bản địa cho Windows có sẵn ở đây . Có nhiều hương vị có sẵn - với hỗ trợ SSL, không có hỗ trợ SSL. Bạn không cần thêm hành lý của Cygwin và những thứ tương tự, chỉ cần một tệp EXE nhỏ.


1

Tôi chỉ cần sử dụng Cygwin và cài đặt các thư viện mong muốn ... Tôi đã luôn luôn làm điều đó ...

Trong quá khứ, tôi đã tìm kiếm các lựa chọn thay thế, vâng. Nhưng Cygwin chỉ là công cụ tốt nhất cho công việc.


2
Ngoại trừ việc cài đặt quá mức các tập tin cho bản cài đặt Cygwin điển hình chỉ để lấy Wget.
Peter Mortensen

Bạn nhận được wget, curl, ... và nhiều hơn nữa. Tôi cho rằng nếu bạn cần wget, có thể bạn sẽ sử dụng một số công cụ linux bổ sung trong tương lai :) - chắc chắn không phải là một screnario mỗi ngày mặc dù
NicoJuicy

1

Tôi đã tạo ra của riêng tôi. Kiểm tra nó tại https://github.com/acarrilho/global (ở cuối trang).

Tải về nguồn và, sử dụng cmd.exe, điều hướng đến thư mục người yêu cầu. Từ đó, chỉ cần gõ httpđể xem tất cả các cài đặt có sẵn. Ví dụ:

http -u "http://www.example.com" -oc
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.