Wget / cURL alternatywa macierzysta dla systemu Windows?


60

Czy w systemie Windows Vista jest narzędzie wiersza polecenia typu Wget lub cURL ? Jak to działa?


Nawet Microsoft dystrybuuje wget.exew pakiecie administracyjnym IIS.
— paradroid


1
Używanie curl tylko do pobierania rzeczy jest jak używanie vima tylko dla funkcji wyrażenia regularnego, a następnie powiedzenie pytania o vimie jest duplikatem pytania o wyrażenia regularne. Tak, pobieranie plików danych to ogromna część HTTP, ale nie jest to jej główny cel.
— erikbwork

Październik 2017 z Windows 8.1: wget i curl są zawarte w PowerShell, jak pokazano tutaj: stackoverflow.com/questions/33364752/…
— SDsolar

Nie, * wersje nix wgeti curlnie są zawarte w PowerShell. Polecenie Invoke-WebRequestcmdlet programu PowerShell jest aliasowane zarówno jako, jak wgeti curl. Działa podobnie do bardzo podstawowych żądań, ale ma zasadniczo różne parametry.
— Mashmagar,

Odpowiedzi:


32

Natywny dla systemu Windows (jest wstępnie zainstalowany i zależy od usługi Windows w tle Usługa inteligentnego transferu w tle (BITS)):

BITSAdmin

Może robić to, co robi Wget, i prawdopodobnie więcej (możesz kontrolować bieżące zadanie za pomocą poleceń podobnych do API - na przykład możesz uzyskać szybkość statusu i anulować, jeśli jest on zbyt wolny).

Przykładowe użycie z własnego doświadczenia (możesz wykonywać równoległe pobieranie w tym samym pliku .bat lub sekwencyjne pobieranie w tym samym zadaniu):

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

Uwaga: Działa w systemie Windows XP, 7, 8 i 10 (testowany w systemie Windows 10 Pro). W systemie Windows XP należy go zainstalować ręcznie z narzędzi obsługi dodatku SP2 .

W najnowszym systemie Windows 10 ostrzeżenie o wycofaniu zniknęło, więc wygląda na to, że to przydatne narzędzie pozostanie.


2
sprawdź / SetNotifyCmdLine, jeśli chcesz użyć tego polecenia sekwencyjnie w .bat
— Tiberiu-Ionuț Stan

5
Uruchomienie programu bitsadmin w systemie Windows 7 wyświetla następujące ostrzeżenie: 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.Uwaga! Użytkownicy.
— yop83

„Narzędzia administracyjne dla usługi BITS są teraz dostarczane przez cmdlety BITS PowerShell.” Nie ma się czego wystrzegać. Tylko klient BITS jest przestarzały, a usługa BITS pozostanie. Będzie dostępny z innym, podobnym pod względem funkcjonalności klientem (PowerShell zostanie wstępnie zainstalowany w przyszłych wersjach systemu Windows).
— Tiberiu-Ionuț Stan

Uwaga: Klient bitsadmin jest obecny w systemie Windows 8 z tym samym ostrzeżeniem o wycofaniu.
— Tiberiu-Ionuț Stan

2
To wygląda na alternatywę dla menedżera pobierania, a nie dla twórcy żądań HTTP, prawda?
— erikbwork,

17

PowerShell v3 CTP1 zawiera polecenie takie jak wget / curl. Nazywa się Invoke-WebRequest . Aby dowiedzieć się więcej, możesz odwiedzić wpis Windows Powershell V3 zawiera polecenia takie jak wget / curl .


2
Widzę, że zarówno superuser.com/a/25540/106977, jak i superuser.com/a/330754/106977 odnoszą się do poleceń PowerShell. Nie próbowałem żadnego z nich, ale te linki są związane z tym postem.
— bgoodr

Jest to świetne narzędzie i jest dostarczane z systemem Windows Server 2012 R2.
— sfuqua,


Jak wiem, Invoke-WebRequestnie mogę ignorować błędów certyfikatów (bardzo przydatna funkcja dla programistów). Przynajmniej w wersji 3.0
— maxkoryukov

Nie mogę Invoke-WebRequestzignorować błędów certyfikatów w programie PowerShell 5.1, ale dokumentacja w programie PowerShell 6 zawiera SkipCertificateCheckflagę: docs.microsoft.com/en-us/powershell/module/…
— Mashmagar

11

Często używam PowerShell do prostych rzeczy, takich jak DownloadString WebClienta :

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

Lub DownloadFilejeśli chcesz coś pobranego jak wgetrobi i spakuj to w funkcję. Oczywiście jest to bardzo szorstkie i nie będzie miało nic takiego jak wznawianie pobierania i podobne.


Korzystanie DownloadFile. to działało, gdy próbowałem go (PowerShell 2.0) $wc.DownloadFile('http://traffic.libsyn.com/makingembeddedsystems/embedded-ep149.mp3', 'EmbeddedFm_149.mp3'). Jednak podczas pobierania nie ma informacji o postępie.
— Peter Mortensen

@PeterMortensen: Oczywiście, że nie. To tylko obiekt .NET. Możesz jednak dołączyć moduł obsługi zdarzeń DownloadProgressChanged. Ale sądzę, że będziesz musiał także użyć wariantów asynchronicznych metod.
— Joey

6

Wygląda na to, że musisz tylko pobrać alternatywną przeglądarkę. Możesz użyć tego polecenia, aby pobrać Mozilla Firefox z wierszem polecenia:

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

Spowoduje to również uruchomienie programu Internet Explorer, ale tylko z podstawowym zestawem funkcji. Powinno to działać, nawet jeśli Internet Explorer jest uszkodzony (w większości przypadków).

Możesz także użyć polecenia FTP. Wpisz następujące polecenie w poleceniach wiersza polecenia:

  1. Typ FTP- który otwiera klienta FTP
  2. Typ open ftp.mozilla.org- który łączy się z Mozilla-FTP
  3. Zaloguj się jako Anonimowy i użyj pustego hasła.
  4. Wpisz cd /pub/mozilla.org/firefox/releases/4.0.1/win32/en-US/-Aby zmienić katalog
  5. Typ recv "Firefox Setup 4.0.1.exe"- aby pobrać instalator Firefox. Plik znajduje się w bieżącym folderze wiersza polecenia. (zwykle twój Profilefolder)
  6. Wpisz, byeaby zamknąć klienta FTP
  7. Wpisz, exitaby zamknąć wiersz polecenia.

3
Ładna odpowiedź, ale całkowicie niezwiązana z zadanym pytaniem.
— Antimony

4
Um. Wydaje się, że jest to zarówno aktualne, jak i przykład użycia explorer.exe jako alternatywy.
— Michael Cole

6

Naprawdę nie ma alternatywy dla Wget. Możesz użyć Wget dla Windows i przypisać ścieżkę do zmiennych środowiskowych, aby działała tak, jak chcesz.


1
Problem polega na tym, że osoba, z którą pracuję, blokuje się podczas uruchamiania przeglądarki i nie mają one dostępu do innego komputera.
— Jordan

2
Jeśli działają przez sieć Ethernet, spraw, aby uruchomiły się w trybie awaryjnym z obsługą sieci?
— Sandeep Bansal

2

Natywny cURL dla Windows jest dostępny tutaj . Dostępnych jest wiele smaków - z obsługą SSL, bez obsługi SSL. Nie potrzebujesz dodatkowego bagażu Cygwin i podobnych, tylko jeden mały plik EXE.


1

Chciałbym po prostu użyć Cygwina i zainstalować potrzebne biblioteki ... Zawsze to robiłem ...

W przeszłości szukałem alternatyw, tak. Ale Cygwin jest najlepszym narzędziem do pracy.


2
Tyle że przesadzanie z instalowaniem gazillionów plików dla typowej instalacji Cygwin tylko po to, aby uzyskać Wget.
— Peter Mortensen

Dostajesz wget, curl, ... i wiele więcej. Podejrzewam, że jeśli będziesz potrzebować wget, prawdopodobnie w przyszłości użyjesz dodatkowych narzędzi linuksowych :) - zdecydowanie nie jest to jednak codzienny scenariusz
— NicoJuicy

1

Stworzyłem własne. Sprawdź to na https://github.com/acarrilho/global (na dole strony).

Pobierz źródło i za pomocą cmd.exe przejdź do folderu requestera. Stamtąd wpisz, httpaby zobaczyć wszystkie dostępne ustawienia. Jako przykład:

http -u "http://www.example.com" -oc
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.