2009-08-19 11:40:48 +0000 2009-08-19 11:40:48 +0000
372
372

Cómo descargar archivos desde la línea de comandos en Windows como wget o curl

¿Cómo puedo descargar algo de la web directamente sin Internet Explorer o Firefox abriendo Acrobat Reader/Quicktime/MS Word/lo que sea?

Estoy usando Windows, así que una versión de Windows de Wget serviría.

Respuestas (19)

323
323
323
2011-09-01 13:25:11 +0000

Una alternativa que descubrí recientemente, usando PowerShell:

$client = new-object System.Net.WebClient
$client.DownloadFile("http://www.xyz.net/file.txt","C:\tmp\file.txt")

Funciona también con consultas GET.

Si necesitas especificar credenciales para descargar el archivo, añade la siguiente línea entre ellas:

$client.Credentials = Get-Credential

Un aviso de credenciales estándar de Windows aparecerá. Las credenciales que introduzca allí se utilizarán para descargar el archivo. Sólo tienes que hacerlo una vez para todo el tiempo que vayas a usar el objeto $cliente.

187
187
187
2009-08-19 11:45:59 +0000

Wget para Windows debería funcionar.

De la Wget Wiki FAQ :

GNU Wget es una utilidad de red gratuita para recuperar archivos de la World Wide Web usando HTTP y FTP, los dos protocolos de Internet más usados. Funciona de manera no interactiva, permitiendo así trabajar en segundo plano, después de haber cerrado la sesión.

Desde esta sección de FAQ , se sugieren enlaces de descarga:

Binarios para Windows

En su lugar se utiliza el enlace por cortesía de Jernej Simončič.

95
95
95
2014-05-17 19:15:46 +0000

Si tienes PowerShell >= 3.0, puedes nosotros Invoke-WebRequest

Invoke-WebRequest -OutFile index.html http://superuser.com

O golfed

iwr -outf index.html http://superuser.com

Descargar un archivo via HTTP en Windows

64
64
64
2011-12-30 17:40:02 +0000

Windows tiene su propia utilidad de descarga de línea de comandos - BITSAdmin :

BITSAdmin es una herramienta de línea de comandos que se puede usar para crear trabajos de descarga o subida y monitorear su progreso.

EDIT : 26.01.15 - Aquí está mi visión general de cómo un archivo puede ser descargado en Windows sin herramientas externas

Y un ejemplo completo de BITSAdmin:

bitsadmin /transfer myDownloadJob /download /priority normal http://downloadsrv/10mb.zip c:0mb.zip

Editar : 15.05.2018_ - resultó que es posible descargar un archivo con certutil también :

certutil.exe -urlcache -split -f "https://download.sysinternals.com/files/PSTools.zip" pstools.zip

Certutil no está instalado por defecto en XP/Win2003 pero está disponible en las nuevas versiones de Windows. Para XP/2003 necesitará el Admin Tool Pack for windows server 2003

33
33
33
2013-01-15 07:03:23 +0000

Guarda el siguiente texto como wget.js y simplemente llama a

cscript /nologo wget.js http://example.com

Este es el código:

var WinHttpReq = new ActiveXObject("WinHttp.WinHttpRequest.5.1");
WinHttpReq.Open("GET", WScript.Arguments(0), /*async=*/false);
WinHttpReq.Send();
WScript.Echo(WinHttpReq.ResponseText);

/* To save a binary file use this code instead of previous line
BinStream = new ActiveXObject("ADODB.Stream");
BinStream.Type = 1;
BinStream.Open();
BinStream.Write(WinHttpReq.ResponseBody);
BinStream.SaveToFile("out.bin");
*/
22
22
22
2013-03-02 13:30:36 +0000

Hice un rápido archivo myGet.bat que llama al método PowerShell descrito arriba.

@Echo OFF
SetLocal EnableDelayedExpansion
Set Var=%1
Set Var=!Var:http://=!
Set Var=!Var:/=,!
Set Var=!Var:%%20=?!
Set Var=!Var: =?!
Call :LOOP !var!
Echo.Downloading: %1 to %~p0!FN!
powershell.exe -Command (new-object System.Net.WebClient).DownloadFile('%1','%~p0!FN!')
GoTo :EOF
:LOOP
If "%1"=="" GoTo :EOF
Set FN=%1
Set FN=!FN:?= !
Shift
GoTo :LOOP

Tomé prestado algún código de Parsing URL for filename with space _.

22
22
22
2012-10-27 14:16:23 +0000

Hay un cURL nativo para Windows disponible aquí . Hay muchos sabores disponibles, con y sin soporte SSL.

No necesitas el equipaje extra de Cygwin y similares, sólo un pequeño archivo EXE.


También es importante saber que hay ambos alias wget y curl incorporados en todas las versiones modernas de Windows Powershell. Son equivalentes.

No se requieren archivos o descargas adicionales para obtener la funcionalidad de wget: Using Curl In Powershell (The Sociable Geek)

Extracto:

Puedes escribir un comando cURL como el que descarga un archivo de un repositorio GitHub.

curl http://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/mongodb-on-ubuntu/azuredeploy.json

y parecerá que funciona pero lo que en realidad hace es usar cURL como un alias. En el caso anterior, lo que sucederá es que sólo obtendrá los encabezados en lugar del archivo en sí.

Alias en PowerShell le permite crear atajos para comandos más largos, de modo que no tenga que escribirlos todo el tiempo.

Si escribe el comando Get-Alias, le dará una lista de todos los Alias que se usan en PowerShell. Como puede ver, el comando curl sólo llama al comando Invoke-WebRequest. Son similares pero no iguales, por lo que la solicitud anterior no funciona para nosotros.

Para que esto funcione correctamente en PowerShell la forma más fácil es usar variables y el argumento -OutFile como se muestra aquí:

(nombre de archivo cortado en la imagen https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/mongodb-on-ubuntu/azuredeploy. json “)

Esta sintaxis descargará el contenido completo del archivo de destino azuredeploy.json al archivo local newfile.json


La principal ventaja es que está incorporado en el propio Powershell, por lo que este código se ejecutará directamente sin necesidad de descargas o de otras creaciones de archivos adicionales para que funcione en cualquier versión moderna de Windows.

8
8
8
2013-04-09 08:13:58 +0000

Estaba buscando lo mismo, y como no tenía el privilegio de instalar ninguno de los paquetes anteriores, fui por una pequeña solución (para descargar más de 30 archivos):

  • Creé un archivo por lotes
  • Liste todos los archivos
  • Ponga firefox.exe al principio de cada línea
  • Fui al directorio de Firefox en Program Files
  • Lo corrí.
4
4
4
2017-02-01 14:06:11 +0000

También podrías usar el wget empaquetado en PowerShell . ;^) Para abrirlo, presione la tecla Windows y escriba “powershell” o Windows-R y escriba “powershell” y presione return.

No es necesario instalar nada.

Una diferencia interesante con respecto al wget convencional (más en ese enlace ): No se puede simplemente usar el mayor de los tubos a un archivo. wget en PowerShell es sólo un envoltorio de conveniencia para Invoke-WebRequest, y necesitas usar su sintaxis para escribir a un archivo.

wget https://superuser.com/questions/25538 -OutFile rubySlippers.html
4
4
4
2012-10-22 05:48:35 +0000

Si PowerShell es una opción, esa es la ruta preferida, ya que (potencialmente) no tendrás que instalar nada extra:

(new-object System.Net.WebClient).DownloadFile('http://www.xyz.net/file.txt', 'C:\tmp\file.tx??t')

Fallo de eso, Wget para Windows, como otros han señalado es definitivamente la segunda mejor opción. Como se publicó en otra respuesta parece que puedes descargar Wget por sí mismo , o puedes agarrarlo como parte de Cygwin o MSys .

Si por alguna razón, te encuentras atascado en un warp de tiempo, usando una máquina que no tiene PowerShell y tienes cero acceso a un navegador web que funcione (es decir, Internet Explorer es el único navegador del sistema, y sus configuraciones están corruptas), y tu archivo está en un sitio FTP (a diferencia de HTTP):

start->run "FTP", press "OK".

Si la memoria sirve ha estado ahí desde Windows 98, y puedo confirmar que sigue ahí en Windows 8 RTM (puede que tengas que entrar en appwiz.cpl y añadir/quitar características para conseguirlo). Esta utilidad puede tanto descargar como subir archivos a/desde sitios FTP en la web. También puede ser usado en scripts para automatizar cualquiera de las dos operaciones.

Esta herramienta incorporada ha sido un verdadero salvavidas para mí en el pasado, especialmente en los días del ftp.cdrom. com – Una vez descargué Firefox de esa manera, en una máquina completamente rota que sólo tenía una conexión telefónica a Internet (cuando el tamaño máximo de los paquetes de Sneakernet todavía era de 1.44 MB, y Firefox todavía se llamaba “Netscape” /me does trollface).

Un par de consejos: es su propio procesador de comandos, y tiene su propia sintaxis. Intenta escribir “ayuda”. Todos los sitios FTP requieren un nombre de usuario y una contraseña; pero si permiten usuarios “anónimos”, el nombre de usuario es “anónimo” y la contraseña es tu dirección de correo electrónico (puedes inventarte una si no quieres que te rastreen, pero normalmente hay algún tipo de lógica para asegurarte de que es una dirección de correo electrónico válida).

3
3
3
2019-06-02 21:52:23 +0000

Busca la función /download en https://lolbas-project.github.io .

Ahora mismo hay Bitsadmin.exe, Certutil.exe, Esentutl.exe, Expand.exe, Extrac32.exe, Findstr.exe, Hh.exe, Ieexec.exe, Makecab.exe, Replace.exe para Windows Vista, Windows 7, Windows 8, Windows 8.1, Windows 10 y las versiones de servidor equivalentes.

3
3
3
2012-02-16 17:10:01 +0000

Cygwin tiene a Wget (y muchas más utilidades).

2
2
2
2009-08-19 11:54:38 +0000

Y http://www.httrack.com/ tiene un buen GUI (y es gratis), para los sitios de réplica. También tiene una versión para Linux.

1
1
1
2009-08-19 11:46:49 +0000

Puedes obtener WGet para Windows aquí . Alternativamente, puede hacer clic con el botón derecho del ratón en el enlace de descarga del artículo que desea descargar y elegir Guardar como. Esto descargará el archivo y no lo abrirá en la aplicación asignada.

1
1
1
2018-06-17 11:29:05 +0000

Creo que instalar wget a través de Chocolatey es la forma más fácil.

  1. Instalar Chocolatey
  2. Desde la línea de comandos, escriba: choco install wget
  3. Entonces puedes usar wget desde la línea de comandos como en los sistemas *nix.
0
0
0
2018-12-05 19:27:48 +0000

Como está documentado en esta SU respuesta , puedes usar lo siguiente en Powershell:

Import-Module bitstransfer
start-bitstransfer -source http://something/something.ext -destination c:\something.ext
0
0
0
2012-02-16 16:58:17 +0000

Si quieres una interfaz gráfica, prueba con VisualWget, que en realidad está limpia, y con todas las funciones. Está basado en GNU Wget para su motor de descarga.

EDIT: enlace actualizado.

-1
-1
-1
2011-07-21 16:00:11 +0000

Una alternativa al uso de gnuwin32 es unxutils que incluye wget.

-3
-3
-3
2016-04-12 07:45:52 +0000

Si necesitas un visual Post para Windows, aquí es uno. Puedes publicar datos o archivos con él.