¿Wget / cURL alternativa nativa a Windows?

60

¿Existe una utilidad de línea de comandos de tipo Wget o cURL nativa de Windows Vista ? ¿Como funciona?

Jordán
fuente
Incluso Microsoft distribuye wget.exeen el paquete de administración de IIS.
paradroid
1
Usar curl solo para descargar cosas es como usar vim solo para la función regex y luego decir una pregunta sobre vim es un duplicado de una pregunta sobre expresiones regulares. Sí, descargar archivos de datos es una gran parte de HTTP, pero no es su objetivo principal.
erikbwork
Octubre de 2017 con Windows 8.1: wget y curl se incluyen en PowerShell, como se muestra aquí: stackoverflow.com/questions/33364752/…
SDsolar
No, las versiones * nix de wgety curlno están incluidas en PowerShell. El Invoke-WebRequestcmdlet de PowerShell tiene un alias como ambos wgety curl. Funciona de manera similar para solicitudes muy básicas, pero tiene parámetros sustancialmente diferentes.
Mashmagar

Respuestas:

32

Nativo de Windows (viene preinstalado y depende del servicio de Windows del Servicio de transferencia inteligente en segundo plano (BITS)):

BITSAdmin

Puede hacer lo que hace Wget, y probablemente más (puede controlar un trabajo en curso a través de comandos tipo API; por ejemplo, puede obtener la velocidad de estado y cancelarla si es demasiado lenta).

Ejemplo de uso según mi propia experiencia (puede hacer descargas paralelas en el mismo .bat o realizar descargas secuenciales en el mismo trabajo):

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

Nota: Funciona en Windows XP, 7, 8 y 10 (probado en Windows 10 Pro). En Windows XP, debe instalarse manualmente desde las herramientas de soporte de SP2 .

En el último Windows 10, la advertencia de desaprobación desapareció, por lo que parece que esta útil herramienta está aquí para quedarse.

Tiberiu-Ionuț Stan
fuente
2
echa un vistazo a la opción / SetNotifyCmdLine si necesitas usar este comando secuencialmente en un .bat
Tiberiu-Ionuț Stan
55
La ejecución de bitsadmin en Windows 7 muestra la siguiente advertencia: los 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.usuarios deben tener cuidado.
yop83
"Las herramientas administrativas para el servicio BITS ahora son proporcionadas por los cmdlets de BITS PowerShell". No hay mucho de qué tener cuidado. Solo el cliente BITS está en desuso, mientras que el servicio BITS permanecerá. Será accesible con otro cliente de funcionalidad similar (PowerShell vendrá preinstalado con futuras versiones de Windows).
Tiberiu-Ionuț Stan
Nota: El cliente de bitsadmin está presente en Windows 8, con la misma advertencia de desaprobación.
Tiberiu-Ionuț Stan
2
Esto parece la alternativa a un administrador de descargas, no a un creador de solicitudes HTTP, ¿no?
erikbwork
18

PowerShell v3 CTP1 viene con un comando como wget / curl. Se llama Invoke-WebRequest . Para obtener más información, puede visitar la publicación Windows Powershell V3 incluye comandos como wget / curl .

Ozzie
fuente
2
Veo que tanto superuser.com/a/25540/106977 como superuser.com/a/330754/106977 hacen referencia a los comandos de Powershell. No he probado ninguno de ellos, pero esos enlaces están relacionados con esta publicación.
bgoodr
Esta es una gran utilidad y viene con Windows Server 2012 R2.
sfuqua
Como sé, Invoke-WebRequestno puedo ignorar los errores de certificado (una característica muy útil para los desarrolladores). Al menos en la versión 3.0
maxkoryukov
No puedo Invoke-WebRequestignorar los errores de certificado en PowerShell 5.1, pero la documentación en PowerShell 6 incluye un SkipCertificateCheckindicador: docs.microsoft.com/en-us/powershell/module/…
Mashmagar
11

A menudo uso PowerShell para cosas simples, como DownloadString de WebClient :

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

O DownloadFilesi desea descargar algo como lo wgethace y empaquetarlo en una función. Por supuesto, esto es muy difícil y no tendrá ninguno de los detalles como descargas reanudables y similares.

Joey
fuente
Utilizando DownloadFile. funcionó cuando lo probé (PowerShell 2.0): $wc.DownloadFile('http://traffic.libsyn.com/makingembeddedsystems/embedded-ep149.mp3', 'EmbeddedFm_149.mp3'). Sin embargo, no hay información de progreso durante la descarga.
Peter Mortensen
@ PeterMortensen: Por supuesto que no. Es solo un objeto .NET. Sin DownloadProgressChangedembargo, puede adjuntar un controlador de eventos a . Pero supongo que también necesitarás usar las variantes asíncronas de los métodos.
Joey
6

Parece que solo necesita descargar un navegador alternativo. Puede usar este comando para descargar Mozilla Firefox con el símbolo del sistema:

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

Esto también inicia Internet Explorer, pero solo con un conjunto de características básicas. Esto debería funcionar incluso si Internet Explorer está roto (en la mayoría de los casos).

También puede usar el comando FTP. Escriba lo siguiente en los comandos del símbolo del sistema:

  1. Tipo FTP: que abre el cliente FTP
  2. Tipo open ftp.mozilla.org: que se conecta a Mozilla-FTP
  3. Simplemente inicie sesión como anónimo y use una contraseña vacía.
  4. Escriba cd /pub/mozilla.org/firefox/releases/4.0.1/win32/en-US/-Para cambiar el directorio
  5. Tipo recv "Firefox Setup 4.0.1.exe": para descargar el instalador de Firefox. El archivo se encuentra en la carpeta actual del símbolo del sistema. (generalmente su Profilecarpeta)
  6. Escriba byepara cerrar el cliente FTP
  7. Escriba exitpara cerrar el símbolo del sistema.
DiableNoir
fuente
3
Buena respuesta, pero completamente ajena a la pregunta formulada.
Antimonio
44
Um. Parece tanto tópico como un ejemplo de uso de explorer.exe como alternativa.
Michael Cole
6

No hay alternativa Wget realmente. Puede usar Wget para Windows y asignar la ruta en las variables de entorno para que funcione como desee.

Sandeep Bansal
fuente
1
El problema es que la persona con la que estoy trabajando se congela el navegador al iniciarse y no tienen acceso a otra computadora.
Jordan
2
Si se ejecutan a través de ethernet, ¿pueden iniciar en modo seguro con redes?
Sandeep Bansal
2

Native cURL para Windows está disponible aquí . Hay muchos sabores disponibles, con soporte SSL, sin soporte SSL. No necesita el equipaje extra de Cygwin y sus gustos, solo un pequeño archivo EXE.

Gaurav Kumar
fuente
1

Simplemente usaría Cygwin e instalaría las bibliotecas deseadas ... Siempre lo he hecho ...

En el pasado, busqué alternativas, sí. Pero Cygwin es la mejor herramienta para el trabajo.

NicoJuicy
fuente
2
Excepto que es excesivo instalar los miles de millones de archivos para una instalación típica de Cygwin solo para obtener Wget.
Peter Mortensen
Obtienes wget, curl, ... y mucho más. Supongo que si necesita wget, probablemente usará algunas herramientas de Linux adicionales en el futuro :) - Definitivamente no es un screnario todos los días
NicoJuicy
1

He creado el mío. Compruébelo en https://github.com/acarrilho/global (en la parte inferior de la página).

Descargue la fuente y, usando cmd.exe, navegue a la carpeta solicitante. A partir de ahí, simplemente escriba httppara ver todas las configuraciones disponibles. Como ejemplo:

http -u "http://www.example.com" -oc
Andre Carrilho
fuente