Wget / cURL Alternative zu Windows?


60

Gibt es ein in Windows Vista integriertes Befehlszeilenprogramm vom Typ Wget oder cURL ? Wie funktioniert es?


Auch Microsoft vertreibt wget.exeim IIS Administration Pack.
Paradroid


1
Wenn Sie curl nur zum Herunterladen von Dingen verwenden, haben Sie die Möglichkeit, vim nur für die Regex-Funktion zu verwenden und dann zu sagen, dass eine Frage zu vim ein Duplikat einer Frage zu Regexen ist. Ja, das Herunterladen von Datendateien ist ein großer Teil von HTTP, aber nicht der Hauptzweck.
Erikbwork

Oktober 2017 mit Windows 8.1: wget und curl sind in PowerShell enthalten, wie hier gezeigt: stackoverflow.com/questions/33364752/…
SDsolar

Nein, * nix-Versionen von wgetund curlsind nicht in PowerShell enthalten. Das PowerShell- Invoke-WebRequestCmdlet hat ein Alias ​​für wgetund curl. Es funktioniert ähnlich für sehr grundlegende Anforderungen, hat jedoch wesentlich andere Parameter.
Mashmagar

Antworten:


32

Native to Windows (wird vorinstalliert geliefert und hängt vom Windows-Dienst Background Intelligent Transfer Service (BITS) ab):

BITSAdmin

Es kann das tun, was Wget tut, und wahrscheinlich auch mehr (Sie können einen laufenden Auftrag über API-ähnliche Befehle steuern - Sie können beispielsweise die Statusgeschwindigkeit abrufen und den Vorgang abbrechen, wenn er zu langsam ist).

Beispielnutzung aus eigener Erfahrung (Sie können parallele Downloads in derselben .bat-Datei oder sequentielle Downloads in demselben Job ausführen):

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

Hinweis: Es funktioniert unter Windows XP, 7, 8 und 10 (getestet unter Windows 10 Pro). Unter Windows XP muss es manuell von den SP2- Supporttools installiert werden .

Auf dem neuesten Windows 10 ist die Verfallswarnung weg, so dass es so aussieht, als ob dieses nützliche Tool hier bleiben wird.


2
Check out / SetNotifyCmdLine Option, wenn Sie diesen Befehl nacheinander in einem .bat
Tiberiu-Ionuț Stan

5
Wenn Sie bitsadmin unter Windows 7 ausführen, wird die folgende Warnung angezeigt: 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.Benutzer aufgepasst.
yop83

"Die Verwaltungstools für den BITS-Dienst werden jetzt von BITS PowerShell-Cmdlets bereitgestellt." Es gibt nicht viel zu beachten. Nur der BITS-Client ist veraltet, während der BITS-Service erhalten bleibt. Der Zugriff erfolgt über einen anderen Client mit ähnlichen Funktionen (PowerShell wird in zukünftigen Windows-Versionen vorinstalliert sein).
Tiberiu-Ionuț Stan

Hinweis: Der bitsadmin-Client ist in Windows 8 mit der gleichen Warnung zur Nichtbeachtung vorhanden.
Tiberiu-Ionuț Stan

2
Das sieht aus wie die Alternative zu einem Download-Manager, nicht zu einem HTTP-Request-Crafter, oder?
Erikbwork

17

PowerShell v3 CTP1 enthält einen Befehl wie wget / curl. Es heißt Invoke-WebRequest . Weitere Informationen finden Sie im Beitrag Windows Powershell V3 enthält Befehle wie wget / curl .


2
Ich sehe, dass sowohl superuser.com/a/25540/106977 als auch superuser.com/a/330754/106977 sich auf Powershell-Befehle beziehen. Ich habe keinen von beiden ausprobiert, aber diese Links beziehen sich auf diesen Beitrag.
BGoodr

Dies ist ein großartiges Dienstprogramm und wird mit Windows Server 2012 R2 geliefert.
Sfuqua,


Wie ich weiß, Invoke-WebRequestkönnen Zertifikatfehler nicht ignoriert werden (eine sehr nützliche Funktion für Entwickler). Zumindest in Version 3.0
Maxkoryukov

Ich kann Invoke-WebRequestZertifikatfehler in PowerShell 5.1 nicht ignorieren, aber die Dokumentation in PowerShell 6 enthält ein SkipCertificateCheckFlag: docs.microsoft.com/en-us/powershell/module/…
Mashmagar

11

Ich benutze PowerShell oft für einfache Dinge wie den DownloadString von WebClient :

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

Oder DownloadFilewenn Sie möchten, dass etwas heruntergeladen wird, wie es der wgetFall ist, und dies in eine Funktion packen. Natürlich ist dies sehr rau und hat keine der Feinheiten wie wiederverwendbare Downloads und ähnliches.


Verwenden DownloadFile. es funktionierte , als ich es (Powershell 2.0) versucht: $wc.DownloadFile('http://traffic.libsyn.com/makingembeddedsystems/embedded-ep149.mp3', 'EmbeddedFm_149.mp3'). Während des Downloads werden jedoch keine Fortschrittsinformationen angezeigt.
Peter Mortensen

@PeterMortensen: Natürlich nicht. Es ist nur ein .NET-Objekt. Sie können jedoch einen Ereignishandler anhängen DownloadProgressChanged. Dann müssen Sie allerdings auch die asynchronen Varianten der Methoden verwenden.
Joey

6

Es scheint, dass Sie nur einen alternativen Browser herunterladen müssen. Mit diesem Befehl können Sie Mozilla Firefox über die Eingabeaufforderung herunterladen:

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

Dadurch wird auch Internet Explorer gestartet, jedoch nur mit einem grundlegenden Funktionsumfang. Dies sollte auch dann funktionieren, wenn der Internet Explorer (in den meisten Fällen) kaputt ist.

Sie können auch den FTP-Befehl verwenden. Geben Sie Folgendes in die Eingabeaufforderung ein:

  1. Typ FTP- Öffnet den FTP-Client
  2. Typ open ftp.mozilla.org- Hiermit wird eine Verbindung zu Mozilla-FTP hergestellt
  3. Melden Sie sich einfach als anonym an und verwenden Sie ein leeres Passwort.
  4. Typ cd /pub/mozilla.org/firefox/releases/4.0.1/win32/en-US/-Um das Verzeichnis ändern
  5. Typ recv "Firefox Setup 4.0.1.exe"- Zum Herunterladen des Firefox-Installationsprogramms. Die Datei befindet sich im aktuellen Ordner der Eingabeaufforderung. (normalerweise dein ProfileOrdner)
  6. Geben Sie ein bye, um den FTP-Client zu schließen
  7. Geben Sie ein exit, um die Eingabeaufforderung zu schließen.

3
Nette Antwort, aber völlig unabhängig von der gestellten Frage.
Antimon

4
Äh. Scheint sowohl aktuell als auch ein Beispiel für die Verwendung von explorer.exe als Alternative zu sein.
Michael Cole

6

Es gibt wirklich keine Wget-Alternative. Sie können Wget für Windows verwenden und den Pfad in Ihren Umgebungsvariablen zuweisen, damit es wie gewünscht funktioniert.


1
Das Problem ist, dass die Person, mit der ich arbeite, beim Start einen Browser-Freeze bekommt und keinen Zugriff auf einen anderen Computer hat.
Jordanien

2
Wenn sie über Ethernet laufen, können sie dann mit dem Netzwerk in den abgesicherten Modus booten?
Sandeep Bansal

2

Native cURL für Windows ist hier verfügbar . Es gibt viele Varianten - mit SSL-Unterstützung, ohne SSL-Unterstützung. Sie brauchen kein zusätzliches Gepäck von Cygwin und anderen, sondern nur eine kleine EXE-Datei.


1

Ich würde einfach Cygwin verwenden und die gewünschten Bibliotheken installieren ... das habe ich immer getan ...

In der Vergangenheit habe ich nach Alternativen gesucht, ja. Aber Cygwin ist einfach das beste Werkzeug für diesen Job.


2
Es ist nur übertrieben, wenn Sie für eine typische Cygwin-Installation eine Unmenge von Dateien installieren, nur um Wget zu bekommen.
Peter Mortensen

Sie bekommen Wget, Curl, ... und vieles mehr. Ich nehme an, wenn du wget brauchst, wirst du wahrscheinlich in Zukunft einige zusätzliche Linux-Tools verwenden :) - definitiv aber kein alltägliches Szenario
NicoJuicy

1

Ich habe meine eigene erstellt. Sieh es dir unter https://github.com/acarrilho/global (unten auf der Seite) an.

Laden Sie die Quelle herunter und navigieren Sie mit cmd.exe zum Ordner des Anforderers. Geben Sie von dort aus einfach ein http, um alle verfügbaren Einstellungen anzuzeigen. Als Beispiel:

http -u "http://www.example.com" -oc
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.