Como baixar arquivos da linha de comando no Windows, como wget ou curl

294

Como posso baixar algo da Web diretamente sem o Internet Explorer ou o Firefox abrindo o Acrobat Reader / Quicktime / MS Word / o que for?

Estou usando o Windows, então uma versão do Windows Wget serve.

    
por Peter Mortensen 15.11.2017 / 19:49

17 respostas

160

O Wget for Windows deve funcionar.

De Perguntas frequentes sobre o Wget Wiki :

GNU Wget is a free network utility to retrieve files from the World Wide Web using HTTP and FTP, the two most widely used Internet protocols. It works non-interactively, thus enabling work in the background, after having logged off.

De esta seção de perguntas frequentes , os links de download são sugeridos:

Windows Binaries

Link com cortesia de Jernej Simončič é usado.

    
por 21.11.2015 / 12:10
279

Uma alternativa que descobri recentemente usando o PowerShell:

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

Funciona bem com as consultas GET.

Se você precisar especificar credenciais para fazer o download do arquivo, adicione a seguinte linha entre:

$client.Credentials =  Get-Credential                

Um prompt de credenciais padrão do Windows será exibido. As credenciais que você inserir lá serão usadas para baixar o arquivo. Você só precisa fazer isso uma vez para todo o tempo em que usar o objeto $ client.

    
por 07.03.2016 / 16:00
65

Se você tiver o PowerShell > = 3.0, poderá usar Invoke-WebRequest

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

Ou golfe

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

Faça o download de um arquivo via HTTP no Windows

    
por 07.08.2017 / 05:43
42

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

BITSAdmin is a command-line tool that you can use to create download or upload jobs and monitor their progress.

EDIT : 26.01.15 - Esta é minha visão geral de como um arquivo pode ser baixado no Windows sem ferramentas externas

E um exemplo completo de bitsadmin:

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

Editar : 15.05.2018 - acabou por ser possível fazer o download de um arquivo com certutil também :

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

O Certutil não é instalado por padrão no XP / Win2003, mas está disponível nas versões mais novas do Windows. Para XP / 2003, você precisará do Admin Tool Pack para o Windows Server 2003

    
por 15.05.2018 / 17:52
28

Salve o texto a seguir como wget.js e simplesmente chame

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");
*/
    
por 15.01.2013 / 09:48
17

Eu fiz um arquivo myGet.bat rápido 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

Eu peguei um código emprestado de URL de análise para nome do arquivo com espaço .

    
por 16.03.2015 / 23:22
15

Há um cURL nativo para Windows disponível aqui . Existem muitos sabores disponíveis - com e sem suporte SSL.

Você não precisa da bagagem extra do Cygwin e dos favoritos, apenas um pequeno arquivo EXE.

Também é importante saber que existem aliases wget e curl incorporados em todas as versões modernas do Windows Powershell. Eles são equivalentes.

Nenhum arquivo ou download extra é necessário para obter a funcionalidade wget :

Usando o Curl In Powershell (O Geek Sociável)

Trecho:

You can type in a cURL command like one that downloads a file from a GitHub repository.

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

and it will seem like it works but what it is actually doing is just using cURL as an alias. In the above instance, what will happen is that you will just get the headers instead of the file itself.

Aliases in PowerShell allow you to create shortcuts for longer commands so you don’t have to type them out all of the time.

If you type in the command Get-Alias, it will give you a list of all the Aliases that are used in PowerShell. As you can see, the curl command just calls the Invoke-WebRequest command. They are similar but not the same which is why the above request does not work for us.

ParaqueissofuncionecorretamentenoPowerShell,amaneiramaisfáciléusarvariáveiseoargumento-OutFile,conformemostradoaqui:

(filenamecutoffinimage“https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/mongodb-on-ubuntu/azuredeploy.json”)

Esta sintaxe fará o download do conteúdo completo do arquivo de destino azuredeploy.json para o arquivo local newfile.json

A principal vantagem é que ele é integrado ao próprio Powershell, portanto, esse código será executado diretamente sem nenhum download ou qualquer outra criação de arquivo extra será necessária para que ele funcione em qualquer versão moderna do Windows.

    
por 15.11.2017 / 19:21
8

Eu estava procurando o mesmo, e desde que eu não tive nenhum privilégio para instalar qualquer um dos pacotes acima, eu fui para uma pequena solução alternativa (para fazer o download de 30 + arquivos):

  • criei um arquivo em lote
  • Listados todos os arquivos
  • Coloque firefox.exe no início de cada linha
  • Foi para o diretório firefox em Program Files
  • executou.
por 16.03.2015 / 23:24
3

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

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

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

Se por algum motivo, você ficar preso em um intervalo de tempo, usando uma máquina que não tenha o PowerShell e , você terá acesso zero a um navegador da Web em funcionamento (ou seja, o Internet Explorer é o único navegador no sistema, e suas configurações estão corrompidas), e seu arquivo está em um site FTP (em oposição ao HTTP):

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

Se a memória estiver lá desde o Windows 98, posso confirmar que ela ainda está lá no Windows 8 RTM (talvez seja necessário acessar appwiz.cpl e adicionar / remover recursos para obtê-la). Este utilitário pode baixar e carregar arquivos de / para sites FTP na web. Ele também pode ser usado em scripts para automatizar qualquer operação.

Esta ferramenta que está sendo construída tem sido uma verdadeira economia de vida para mim no passado, especialmente nos dias de ftp.cdrom.com - Eu baixei o Firefox dessa forma uma vez, em uma máquina completamente quebrada que tinha apenas um dial conexão com a Internet (quando o tamanho máximo do pacote do sneakernet ainda era de 1,44 MB, e o Firefox ainda era chamado de "Netscape" / me faz trollface ).

Algumas dicas: é o seu próprio processador de comandos e tem sua própria sintaxe. Tente digitar "ajuda". Todos os sites FTP exigem um nome de usuário e senha; mas se eles permitem usuários "anônimos", o nome de usuário é "anônimo" e a senha é o seu endereço de e-mail (você pode criar um se não quiser ser rastreado, mas geralmente há algum tipo de lógica para garantir um endereço de email válido).

    
por 09.01.2015 / 13:11
3
O

Cygwin tem o Wget (e muitas outras utilidades).

    
por 16.03.2015 / 23:19
2

E o link tem uma boa GUI (e é gratuita), para espelhar sites. Também tem uma versão do Linux.

    
por 26.02.2015 / 00:45
1

Se você quiser uma GUI, tente VisualWget , que é realmente limpo e cheio de recursos. Ele é baseado no GNU Wget para seu mecanismo de download.

EDIT: link atualizado.

    
por 24.03.2013 / 18:52
1

Você também pode usar o wget empacotado no PowerShell . ; ^) Para abrir, pressione a tecla Windows e digite "powershell" ou Windows-R, digite "powershell" e pressione Enter.

Nenhuma instalação é necessária.

Uma diferença interessante do wget convencional (mais em esse link ): você não pode simplesmente usar o maior -do que canalizar para um arquivo. wget no PowerShell é apenas um wrapper de conveniência para Invoke-WebRequest e você precisa usar sua sintaxe para gravar em um arquivo.

wget https://superuser.com/questions/25538 -OutFile rubySlippers.html
    
por 20.03.2017 / 11:17
1

Acho que instalar o wget via Chocolatey é a maneira mais fácil.

  1. Instale Chocolatey
  2. Na linha de comando, digite: choco install wget
  3. Você pode usar wget da linha de comando como nos sistemas * nix.
por 17.06.2018 / 13:29
0

Você pode obter o WGet para Windows aqui . Alternativamente, você pode clicar com o botão direito do mouse no link de download do item que deseja baixar e escolher Salvar como. Isso fará o download do arquivo e não o abrirá no aplicativo designado.

    
por 19.08.2009 / 13:46
-1

Uma alternativa ao uso do gnuwin32 é unxutils que inclui o wget.

    
por 21.07.2011 / 18:00
-3

Se você precisar de uma postagem visual para Windows, aqui é um.
Você pode postar dados ou arquivos com ele.

    
por 12.04.2016 / 09:45