Alternativa Wget / cURL nativa para Windows?

60

Existe um utilitário de linha de comando do tipo Wget ou cURL nativo para o Windows Vista ? Como funciona?

Jordânia
fonte
Até a Microsoft distribui wget.exeno Pacote de Administração do IIS.
parrotroid
11
Usar curl apenas para baixar coisas é como usar o vim apenas para o recurso regex e, em seguida, dizer que uma pergunta sobre o vim é uma duplicata de uma pergunta sobre regexes. Sim, o download de arquivos de dados é uma grande parte do HTTP, mas não é seu objetivo principal.
precisa saber é o seguinte
Outubro de 2017 com o Windows 8.1: o wget e o curl estão incluídos no PowerShell, conforme mostrado aqui: stackoverflow.com/questions/33364752/…
SDsolar
Não, as versões * nix wgete curlnão estão incluídas no PowerShell. O Invoke-WebRequestcmdlet do PowerShell é aliasado como wgete curl. Funciona de maneira semelhante para solicitações muito básicas, mas possui parâmetros substancialmente diferentes.
Mashmagar

Respostas:

32

Nativo para o Windows (vem pré-instalado e depende do Background Intelligent Transfer Service (BITS) de serviços do Windows):

BITSAdmin

Ele pode fazer o que o Wget faz e provavelmente mais (você pode controlar um trabalho em andamento por meio de comandos do tipo API - por exemplo, é possível obter a velocidade do status e cancelar se estiver muito lento).

Exemplo de uso da minha própria experiência (você pode fazer downloads paralelos no mesmo .bat ou fazer downloads sequenciais no mesmo trabalho):

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 no Windows XP, 7, 8 e 10 (testado no Windows 10 Pro). No Windows XP, ele deve ser instalado manualmente a partir das Ferramentas de Suporte do SP2 .

No Windows 10 mais recente, o aviso de descontinuação foi desativado, pelo que parece que esta ferramenta útil chegou para ficar.

Tiberiu-Ionuț Stan
fonte
2
confira / opção SetNotifyCmdLine se você precisa usar este comando sequencialmente em um .bat
Tiberiu-Ionuţ Stan
5
A execução do bitsadmin no Windows 7 exibe o seguinte aviso: 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.Cuidado com os usuários.
yop83 31/05
"As ferramentas administrativas para o serviço BITS agora são fornecidas pelos cmdlets do BITS PowerShell." Não há muito o que ter cuidado. Somente o cliente BITS está obsoleto, enquanto o serviço BITS permanecerá. Ele estará acessível com outro cliente de funcionalidade semelhante (o PowerShell virá pré-instalado com versões futuras do Windows).
Tiberiu-Ionuț Stan
Nota: O cliente bitsadmin está presente no Windows 8, com o mesmo aviso de descontinuação.
Tiberiu-Ionuț Stan
2
Parece a alternativa para um gerenciador de downloads, não para um criador de solicitações HTTP, não é?
Erikbwork 19/09/2015
18

O PowerShell v3 CTP1 vem com um comando como wget / curl. Chama -se Invoke-WebRequest . Para saber mais, você pode visitar a publicação do Windows Powershell V3 que inclui comandos como wget / curl .

Ozzie
fonte
2
Vejo que superuser.com/a/25540/106977 e superuser.com/a/330754/106977 se referem aos comandos do PowerShell. Eu não tentei nenhum deles, mas esses links estão relacionados a esta postagem.
bgoodr
Este é um ótimo utilitário e vem com o Windows Server 2012 R2.
sfuqua 10/09/2015
Como eu sei, Invoke-WebRequestnão posso ignorar erros de certificado (um recurso muito útil para desenvolvedores). Pelo menos na versão 3.0
maxkoryukov 16/04/19
Eu não posso começar Invoke-WebRequesta ignorar erros de certificado em PowerShell 5.1, mas a documentação em PowerShell 6 inclui uma SkipCertificateCheckbandeira: docs.microsoft.com/en-us/powershell/module/...
Mashmagar
11

Costumo usar o PowerShell para coisas simples, como o DownloadString do WebClient :

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

Ou DownloadFilese você quiser algo baixado como o wgetfaz e empacotá-lo em uma função. Claro, isso é muito difícil e não terá nenhum dos detalhes, como downloads recuperáveis ​​e similares.

Joey
fonte
Usando DownloadFile. funcionou quando eu tentei (PowerShell 2.0): $wc.DownloadFile('http://traffic.libsyn.com/makingembeddedsystems/embedded-ep149.mp3', 'EmbeddedFm_149.mp3'). No entanto, não há informações de progresso durante o download.
31816 Peter Mortensen
@ PeterMortensen: Claro que não. É apenas um objeto .NET. Você pode anexar um manipulador de eventos DownloadProgressChanged, no entanto. Mas acho que você também precisará usar as variantes assíncronas dos métodos.
Joey
6

Parece que você só precisa baixar um navegador alternativo. Você pode usar este comando para baixar o Mozilla Firefox com o prompt de comando:

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

Isso também inicia o Internet Explorer, mas apenas com um conjunto de recursos básicos. Isso deve funcionar mesmo se o Internet Explorer estiver quebrado (na maioria dos casos).

Você também pode usar o comando FTP. Digite o seguinte nos comandos do prompt de comando:

  1. Tipo FTP- que abre o cliente FTP
  2. Tipo open ftp.mozilla.org- que se conecta ao Mozilla-FTP
  3. Basta fazer login como anônimo e usar uma senha vazia.
  4. Digite cd /pub/mozilla.org/firefox/releases/4.0.1/win32/en-US/-Para alterar o diretório
  5. Tipo recv "Firefox Setup 4.0.1.exe"- Para baixar o instalador do Firefox. O arquivo está localizado na pasta atual do prompt de comando. (geralmente sua Profilepasta)
  6. Digite byepara fechar o cliente FTP
  7. Digite exitpara fechar o prompt de comando.
DiableNoir
fonte
3
Boa resposta, mas completamente sem relação com a pergunta.
Antimony
4
Hum. Parece tópico e um exemplo do uso do explorer.exe como alternativa.
Michael Cole
6

Não existe realmente nenhuma alternativa para o Wget. Você pode usar o Wget para Windows e atribuir o caminho nas variáveis ​​de ambiente para fazê-lo funcionar da maneira que desejar.

Sandeep Bansal
fonte
11
O problema é que a pessoa com quem estou trabalhando está travando no navegador e ela não tem acesso a outro computador.
Jordânia
2
Se eles estiverem executando através da Ethernet, faça com que eles inicializem no modo de segurança com a rede?
Sandeep Bansal
2

O cURL nativo para Windows está disponível aqui . Existem muitos tipos disponíveis - com suporte a SSL, sem suporte a SSL. Você não precisa da bagagem extra do Cygwin e coisas do gênero, apenas um pequeno arquivo EXE.

Gaurav Kumar
fonte
1

Eu apenas usava o Cygwin e instalava as bibliotecas desejadas ... Eu sempre fiz isso ...

No passado, eu procurei por alternativas, sim. Mas Cygwin é apenas a melhor ferramenta para o trabalho.

NicoJuicy
fonte
2
Exceto que é um exagero instalar os zilhões de arquivos para uma instalação típica do Cygwin apenas para obter o Wget.
31416 Peter Mortensen
Você ganha wget, enrola, ... e muito mais. Suponho que se você precisa wget você provavelmente vai usar algumas ferramentas do Linux adicionais no futuro :) - definitivamente não um a cada dia screnario embora
NicoJuicy
1

Eu criei o meu. Confira em https://github.com/acarrilho/global (na parte inferior da página).

Faça o download da fonte e, usando o cmd.exe, navegue até a pasta do solicitante. A partir daí, basta digitar httppara ver todas as configurações disponíveis. Como um exemplo:

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