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

Como descarregar ficheiros da linha de comandos no Windows como wget ou curl

Como posso descarregar algo da web directamente sem Internet Explorer ou Firefox abrindo Acrobat Reader/Quicktime/MS Word/qualquer coisa?

Estou a usar o Windows, por isso uma versão Windows de Wget serve.

Respostas (19)

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

Uma alternativa que descobri recentemente, usando PowerShell:

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

Funciona também com consultas GET.

Se precisar de especificar as credenciais para descarregar o ficheiro, adicione a seguinte linha entre:

$client.Credentials = Get-Credential

Uma janela padrão de credenciais irá aparecer. As credenciais que aí introduzir serão utilizadas para descarregar o ficheiro. Só precisa de fazer isto de uma vez por todas o tempo que estiver a utilizar o objecto $client.

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

Da Wget Wiki FAQ :

GNU Wget é um utilitário de rede gratuito para recuperar ficheiros da World Wide Web utilizando HTTP e FTP, os dois protocolos de Internet mais utilizados. Funciona de forma não interactiva, permitindo assim o trabalho em segundo plano, depois de se ter desligado.

A partir de esta secção das FAQ , sugere-se o download de ligações:

Windows Binaries

Em vez disso, é utilizada a ligação com cortesia de Jernej Simončič.

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

Se tem PowerShell >= 3.0, pode Invoke-WebRequest

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

ou golfed

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

Descarregar um ficheiro via HTTP no Windows

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

Windows tem o seu próprio utilitário de download de linha de comando - BITSAdmin :

BITSAdmin é uma ferramenta de linha de comando que pode utilizar para criar trabalhos de download ou upload e monitorizar o seu progresso.

EDIT : 26.01.15 - Aqui está a minha visão geral de como um ficheiro pode ser descarregado no windows sem ferramentas externas

E um exemplo completo de bitsadmin:

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

Editar : 15.05.2018 - acabou por ser possível descarregar um ficheiro com certutil também :

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

Certutil não está instalado por defeito no XP/Win2003 mas está disponível nas versões mais recentes do windows. Para o XP/2003 necessitará do Admin Tool Pack for windows server 2003

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

Guardar o seguinte texto como wget.js e simplesmente chamar

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

Este é o 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

Fiz um rápido ficheiro myGet.bat que chama o método PowerShell descrito acima.

@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

Pedi emprestado algum código de Parsing URL para nome de ficheiro com espaço _.

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

Existe uma cURL nativa para Windows disponível aqui . Existem muitos sabores disponíveis - com e sem suporte SSL.

Não precisa da bagagem extra do Cygwin e similares, apenas um pequeno ficheiro EXE.


** É também importante saber que existem ambos os apelidos wget e curl incorporados em todas as versões modernas do Windows Powershell. São equivalentes.**

** Não são necessários ficheiros extra ou downloads para obter a funcionalidade wget:** Usando o Curl In Powershell (The Sociable Geek)

Excerpt:

Pode digitar um comando cURL como um que descarrega um ficheiro de um repositório GitHub.

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

e vai parecer que funciona mas o que está realmente a fazer é apenas usar o cURL como um alias. No exemplo acima, o que irá acontecer é que irá apenas obter os cabeçalhos em vez do ficheiro em si.

Aliases in PowerShell permite-lhe criar atalhos para comandos mais longos para que não tenha de os escrever a toda a hora.

Se escrever o comando Get-Alias, irá obter uma lista de todos os Aliases que são usados no PowerShell. Como pode ver, o comando curl apenas chama o comando Invoke-WebRequest. Eles são semelhantes mas não são os mesmos, razão pela qual o pedido acima não funciona para nós.

Para que isto funcione correctamente no PowerShell a forma mais fácil é usar variáveis e o argumento -OutFile como mostrado aqui:

(nome do ficheiro cortado na imagem https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/mongodb-on-ubuntu/azuredeploy. json “)

** Esta sintaxe irá descarregar o conteúdo completo do ficheiro alvo azuredeploy.json para o ficheiro local newfile.json**


** A principal vantagem é que está integrado no próprio Powershell, pelo que este código será executado directamente sem downloads ou qualquer outra criação de ficheiros extra para que funcione em qualquer versão moderna do Windows.**

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

Eu estava procurando o mesmo, e como não tive o privilégio de instalar nenhum dos pacotes acima, fui para um pequeno trabalho (para baixar mais de 30 arquivos):

  • Criei um arquivo batch
  • Listei todos os arquivos
  • Coloquei firefox.exe no início de cada linha
  • Fui para o diretório firefox em Program Files
  • Fiz o Ran it.
4
4
4
2017-02-01 14:06:11 +0000

Pode também usar o wget embalado em PowerShell . ^) Para abrir, carregue na tecla Windows e digite “powerhell” ou Windows-R e digite “powerhell” e carregue em “return”.

Não é necessária instalação.

Uma diferença interessante em relação aos wget convencionais (mais em esse link ): Não se pode simplesmente usar o maior do que canalizar para um ficheiro. wget no PowerShell é apenas uma embalagem de conveniência para Invoke-WebRequest, e precisa de usar a sua sintaxe para escrever para um ficheiro.

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

Se PowerShell é uma opção, essa é a rota preferida, uma vez que você (potencialmente) não terá que instalar nada extra:

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

Se não o fizer, Wget for Windows, como outros já referiram, é definitivamente a segunda melhor opção. Como postado em outra resposta, parece que você pode baixar o Wget sozinho , ou você pode pegá-lo como parte do Cygwin ou MSys .

Se por alguma razão, você se encontrar preso numa barra de tempo, usando uma máquina que não tem PowerShell e você tem zero acesso a um navegador web em funcionamento (ou seja, Internet Explorer é o único navegador no sistema, e as suas configurações estão corrompidas), e o seu ficheiro está num sítio FTP (em oposição a HTTP):

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

Se a memória serve, está lá desde o Windows 98, e posso confirmar que ainda lá está no Windows 8 RTM (poderá ter de ir ao appwiz.cpl e adicionar/remover funcionalidades para o obter). Este utilitário pode tanto descarregar como carregar ficheiros para/de sítios FTP na web. Esta ferramenta tem sido uma verdadeira salvação para mim no passado, especialmente nos dias de ftp.cdrom. com – Descarreguei o Firefox dessa forma uma vez, numa máquina completamente avariada que tinha apenas uma ligação dial-up à Internet (quando o tamanho máximo do pacote da sneakernet ainda era 1.44 MB, e o Firefox ainda se chamava “Netscape” /me faz trollface).

Algumas dicas: é o seu próprio processador de comandos, e tem a sua própria sintaxe. Tente digitar “ajuda”. Todos os sites FTP requerem um nome de utilizador e uma palavra-passe; mas se permitirem utilizadores “anónimos”, o nome de utilizador é “anónimo” e a palavra-passe é o seu endereço de e-mail (pode inventar uma se não quiser ser localizado, mas normalmente existe algum tipo de lógica para ter a certeza de que é um endereço de e-mail válido).

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

Pesquisa por função /download em https://lolbas-project.github.io .

Neste momento existem Bitsadmin.exe, Certutil.exe, Esentutl.exe, Expand.exe, Extrac32.exe, Findstr.exe, Hh.exe, Ieexec.exe, Makecab.exe, Replace.exe, &007 para Windows vista, Windows 7, Windows 8, Windows 8.1, Windows 10 e as versões equivalentes do servidor.

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

A Cygwin tem a Wget (e muitas mais utilidades).

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

E http://www.httrack.com/ tem uma boa GUI (e é grátis), para sites de espelhamento. Também tem uma versão Linux.

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

Você pode obter WGet for Windows aqui . Em alternativa pode clicar com o botão direito do rato no link de download do item que pretende descarregar e escolher Save As. Isto irá descarregar o ficheiro e não abri-lo na aplicação atribuída.

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

Penso que instalar wget via Chocolatey é a forma mais fácil.

  1. Instalar Chocolatey
  2. A partir da linha de comando, digite: choco install wget
  3. Pode então usar o wget a partir da linha de comando, como nos sistemas *nix.
0
0
0
2018-12-05 19:27:48 +0000

Como documentado nesta resposta SU , pode usar o seguinte em 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

Se você quer uma GUI, então tente VisualWget , que é realmente limpa, e apresente uma imagem completa. É baseado no GNU Wget para o seu motor de download.

EDIT: link actualizado.

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

Uma alternativa à utilização do gnuwin32 é o unxutils que inclui o wget.

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

Se precisar de um visual Post for Windows, aqui é um. Pode colocar dados ou ficheiros com ele.