Wget / cURL alternative native à Windows?

60

Existe-t-il un utilitaire de ligne de commande de type Wget ou cURL natif de Windows Vista ? Comment ça marche?

Jordan
la source
Même Microsoft distribue wget.exedans le pack d'administration IIS.
paradroïde
1
Utiliser curl juste pour télécharger des choses revient à utiliser vim uniquement pour la fonctionnalité regex et ensuite poser une question sur vim est un doublon d'une question sur les regex. Oui, le téléchargement de fichiers de données est une partie importante du protocole HTTP, mais ce n’est pas son objectif principal.
erikbwork le
Octobre 2017 avec Windows 8.1: wget et curl sont inclus dans PowerShell, comme indiqué ci-dessous: stackoverflow.com/questions/33364752/…
SDsolar
Non, les versions * nix de wgetet curlne sont pas incluses dans PowerShell. L' Invoke-WebRequestapplet de commande PowerShell est alias en tant que wgetet curl. Cela fonctionne de la même manière pour les requêtes très basiques, mais a des paramètres sensiblement différents.
Mashmagar

Réponses:

32

Natif pour Windows (est préinstallé et dépend du service Windows BITS ( Background Intelligent Transfer Service )):

BITSAdmin

Il peut faire ce que Wget fait, et probablement plus (vous pouvez contrôler un travail en cours à l’aide de commandes de type API - vous pouvez par exemple connaître la vitesse du statut et l’annuler s’il est trop lent).

Exemple d'utilisation tirée de ma propre expérience (vous pouvez effectuer des téléchargements parallèles dans le même fichier .bat ou des téléchargements séquentiels dans le même travail):

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

Remarque: Il fonctionne sous Windows XP, 7, 8 et 10 (testé sous Windows 10 Pro). Sous Windows XP, il doit être installé manuellement à partir des outils de support du SP2 .

Sur la dernière version de Windows 10, l’avertissement de dépréciation a disparu, il semble donc que cet outil utile soit là pour rester.

Tiberiu-Ionuț Stan
la source
2
Consultez l'option / SetNotifyCmdLine si vous devez utiliser cette commande de manière séquentielle dans un fichier .bat
Tiberiu-Ionuț Stan
5
L'exécution de bitsadmin sous Windows 7 affiche l'avertissement suivant: 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.Les utilisateurs doivent se méfier.
Yop83
"Les outils d'administration du service BITS sont désormais fournis par les cmdlets BITS PowerShell." Il n'y a pas grand chose à se méfier. Seul le client BITS est obsolète, alors que le service BITS sera conservé. Il sera accessible avec un autre client similaire, à fonctionnalité similaire, (PowerShell sera préinstallé avec les futures versions de Windows).
Tiberiu-Ionuț Stan
Remarque: le client bitsadmin est présent dans Windows 8, avec le même avertissement de dépréciation.
Tiberiu-Ionuț Stan
2
Cela ressemble à l'alternative à un gestionnaire de téléchargement, pas à un créateur de requêtes HTTP, n'est-ce pas?
erikbwork le
18

PowerShell v3 CTP1 est livré avec une commande comme wget / curl. C'est ce qu'on appelle Invoke-WebRequest . Pour en savoir plus, vous pouvez visiter le post Windows Powershell V3 inclut une commande comme wget / curl .

Ozzie
la source
2
Je vois superuser.com/a/25540/106977 et superuser.com/a/330754/106977 se référer aux commandes Powershell. Je n'ai essayé ni l'un ni l'autre, mais ces liens sont liés à cette publication.
bgoodr
Il s'agit d'un excellent utilitaire fourni avec Windows Server 2012 R2.
sfuqua
Comme je le sais, je ne Invoke-WebRequestpeux pas ignorer les erreurs de certificat (une fonctionnalité très utile pour les développeurs). Au moins dans la version 3.0
maxkoryukov
Je ne parviens pas Invoke-WebRequestà ignorer les erreurs de certificat dans PowerShell 5.1, mais la documentation de PowerShell 6 inclut un SkipCertificateCheckindicateur: docs.microsoft.com/en-us/powershell/module/…
Mashmagar
11

J'utilise souvent PowerShell pour des choses simples, comme le DownloadString de WebClient :

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

Ou DownloadFilesi vous voulez que quelque chose soit téléchargé comme wgetsi c'était le cas et que cela soit intégré dans une fonction. Bien sûr, ceci est très difficile et n’aura aucune des subtilités comme les téléchargements récupérables et similaires.

Joey
la source
Utilisation DownloadFile. il a travaillé quand je l'ai essayé (PowerShell 2.0): $wc.DownloadFile('http://traffic.libsyn.com/makingembeddedsystems/embedded-ep149.mp3', 'EmbeddedFm_149.mp3'). Cependant, il n’ya pas d’informations sur les progrès réalisés pendant le téléchargement.
Peter Mortensen
@PeterMortensen: Bien sûr que non. C'est juste un objet .NET. Vous pouvez cependant attacher un gestionnaire d'événements à DownloadProgressChanged. Mais je suppose que vous devrez également utiliser les variantes asynchrones des méthodes.
Joey
6

Il semble que vous n’ayez besoin que de télécharger un autre navigateur. Vous pouvez utiliser cette commande pour télécharger Mozilla Firefox avec l'invite de commande:

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

Cela lance également Internet Explorer, mais uniquement avec un ensemble de fonctionnalités de base. Cela devrait fonctionner même si Internet Explorer est en panne (dans la plupart des cas).

Vous pouvez également utiliser la commande FTP. Tapez ce qui suit dans les commandes d'invite de commande:

  1. Type FTP- Qui ouvre le client FTP
  2. Type open ftp.mozilla.org- Qui se connecte à Mozilla-FTP
  3. Connectez-vous simplement en tant qu'Anonyme et utilisez un mot de passe vide.
  4. Tapez cd /pub/mozilla.org/firefox/releases/4.0.1/win32/en-US/-Pour changer de répertoire
  5. Type recv "Firefox Setup 4.0.1.exe"- Pour télécharger le programme d'installation de Firefox. Le fichier se trouve dans le dossier en cours de l'invite de commande. (généralement votre Profiledossier)
  6. Tapez byepour fermer le client FTP
  7. Tapez exitpour fermer l'invite de commande.
DiableNoir
la source
3
Bonne réponse, mais complètement sans rapport avec la question posée.
Antimony
4
Hum Semble à la fois actuel et un exemple d'utilisation de explorer.exe comme alternative.
Michael Cole
6

Il n'y a pas vraiment d'alternative Wget. Vous pouvez utiliser Wget pour Windows et attribuer le chemin d'accès dans les variables d'environnement pour qu'il fonctionne comme vous le souhaitez.

Sandeep Bansal
la source
1
Le problème est que la personne avec laquelle je travaille subit un blocage du navigateur au lancement et qu’elle n’a pas accès à un autre ordinateur.
Jordanie
2
S'ils fonctionnent via Ethernet, amenez-les à démarrer en mode sans échec avec la mise en réseau?
Sandeep Bansal
2

CURL natif pour Windows est disponible ici . Il existe de nombreuses variantes disponibles - avec prise en charge de SSL, sans prise en charge de SSL. Vous n’avez pas besoin du bagage supplémentaire de Cygwin et autres, mais d’un seul fichier EXE.

Gaurav Kumar
la source
1

J'utilisais simplement Cygwin et installais les bibliothèques recherchées ... Je l'ai toujours fait ...

Dans le passé, j'ai cherché des alternatives, oui. Mais Cygwin n'est que le meilleur outil pour ce travail.

NicoJuicy
la source
2
Sauf qu'il est excessif d'installer les gazillions de fichiers pour une installation typique de Cygwin juste pour obtenir Wget.
Peter Mortensen
Vous obtenez wget, curl, ... et bien plus encore. Je suppose que si vous avez besoin de wget, vous utiliserez probablement des outils linux supplémentaires à l'avenir :) - ce n'est certainement pas un screnario quotidien
NicoJuicy
1

J'ai créé le mien. Consultez-le à l' adresse https://github.com/acarrilho/global (au bas de la page).

Téléchargez la source et, à l'aide de cmd.exe, accédez au dossier du demandeur. A partir de là, il suffit de taper httppour voir tous les paramètres disponibles. Par exemple:

http -u "http://www.example.com" -oc
André Carrilho
la source