É possível fazer o download usando a linha de comando do Windows?

120

Sem usar nenhum utilitário não-padrão (Windows incluído), é possível fazer o download usando a linha de comando do Windows?

A versão preferida é o Windows XP, mas também é interessante conhecer novas versões.

Para esclarecer melhor a minha pergunta:

  • Tem que estar usando HTTP
  • O arquivo precisa ser salvo
  • Instalação padrão limpa do Windows, sem ferramentas extras

Então, basicamente, já que todo mundo está gritando Wget , eu quero a funcionalidade simples do Wget, sem usando o Wget.

    
por Robert Massa 23.10.2009 / 16:58

15 respostas

50

Você pode escrever um VBScript e executá-lo a partir da linha de comando

Crie um arquivo downloadfile.vbs e insira as seguintes linhas de código:

' Set your settings
    strFileURL = "http://www.it1.net/images/it1_logo2.jpg"
    strHDLocation = "c:\logo.jpg"

' Fetch the file
    Set objXMLHTTP = CreateObject("MSXML2.XMLHTTP")

    objXMLHTTP.open "GET", strFileURL, false
    objXMLHTTP.send()

If objXMLHTTP.Status = 200 Then
Set objADOStream = CreateObject("ADODB.Stream")
objADOStream.Open
objADOStream.Type = 1 'adTypeBinary

objADOStream.Write objXMLHTTP.ResponseBody
objADOStream.Position = 0    'Set the stream position to the start

Set objFSO = CreateObject("Scripting.FileSystemObject")
If objFSO.Fileexists(strHDLocation) Then objFSO.DeleteFile strHDLocation
Set objFSO = Nothing

objADOStream.SaveToFile strHDLocation
objADOStream.Close
Set objADOStream = Nothing
End if

Set objXMLHTTP = Nothing

Execute-o na linha de comando da seguinte forma:

cscript.exe downloadfile.vbs 
    
por 23.10.2009 / 17:31
73

A partir do Windows 7, acredito que há um único método que ainda não foi mencionado, mas que é fácil:

Sintaxe:

bitsadmin  /transfer job_name       /download  /priority priority   URL  local\path\file

Exemplo:

bitsadmin  /transfer mydownloadjob  /download  /priority normal  ^
                  http://example.com/filename.zip  C:\Users\username\Downloads\filename.zip

(dividido em duas linhas separadas com ^ para legibilidade (para evitar a rolagem).)

Aviso: Como apontado nos comentários, a mensagem de ajuda bitsadmin começa dizendo:

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.

... mas outro comentário relatou que funciona no Windows 8.

    
por 16.05.2011 / 11:13
37

O Windows 7 inclui o PowerShell e praticamente não há nada que você não possa fazer com o PowerShell.

Alternativa nativa para o wget no Windows PowerShell?

    
por 23.10.2009 / 17:27
24

O PowerShell (incluído no Windows 8 e incluído no .NET para versões anteriores) tem esse recurso. O comando powershell permite a execução de comandos arbitrários do PowerShell a partir da linha de comando ou de um arquivo .bat . Assim, a seguinte linha é o que é desejado:

powershell -command "& { (New-Object Net.WebClient).DownloadFile('http://example.com/', 'c:\somefile') }"
    
por 29.05.2014 / 04:22
16

Eu encontrei uma maneira de fazer isso, mas, na verdade, basta instalar o Wget .

Você pode usar o Internet Explorer a partir de uma linha de comando (iexplore.exe) e depois inserir uma URL como argumento. Então, corra:

iexplore.exe http://blah.com/filename.zip

Qualquer que seja o arquivo, você precisará especificar que ele não precisa de confirmação antes do tempo. Eis que, executará automaticamente o download. Então, sim, é tecnicamente possível, mas bom senhor faça isso de uma maneira diferente.

    
por 23.10.2009 / 17:12
11

Windows Explorer (não deve ser confundido com o Internet Explorer) pode baixar arquivos via HTTP. Basta digitar o URL na barra de endereços. Ou a partir da linha de comando, por exemplo, C:\windows\explorer.exe http://somewhere.com/filename.ext .

Você recebe o prompt clássico Download de arquivo . A menos que o arquivo seja do tipo que o Windows Explorer saiba como exibir inline, (.html, .jpg, .gif), caso em que você precisaria clicar com o botão direito do mouse para salvá-lo.

Acabei de testar isso em minha imagem VMware de uma instalação virgem do Windows XP 2002 SP1 e funciona bem.

    
por 08.08.2011 / 17:18
6

Você pode usar (em um padrão Windows bat):

powershell -command "& { iwr http://www.it1.net/it1_logo2.jpg -OutFile logo.jpg }"

Parece exigir o PowerShell v4 ...

(Agradecimentos a esse comentário e este )

    
por 10.05.2016 / 16:10
5

Use o FTP.

Na linha de comando:

ftp ftp.somesite.com
user
password

FTP está incluído em todas as versões do Windows que me lembro; provavelmente não no 3.1, talvez não no Windows 95 , mas certamente tudo depois disso.

@RM: Será difícil se você não quiser baixar outras ferramentas. Existe uma linha de comando Wget for Windows e Wget foi projetado para fazer exatamente o que você está pedindo.

    
por 23.10.2009 / 17:01
3

Use o PowerShell assim:

  1. Crie um arquivo download.ps1:

    param($url, $filename)
    $client = new-object System.Net.WebClient 
    $client.DownloadFile( $url, $filename)
    
  2. Agora você pode baixar um arquivo como este:

    powershell Set-ExecutionPolicy Unrestricted
    powershell -ExecutionPolicy RemoteSigned -File "download.ps1" "http://somewhere.com/filename.ext" "d:\filename.ext"
    
por 21.04.2013 / 23:55
1

Se você instalar o Telnet, imagino que você poderia fazer uma solicitação HTTP para um servidor para baixar um arquivo.

Você também pode instalar o Cygwin e usar wget para fazer o download de um arquivo também. Esta é uma maneira muito fácil de baixar arquivos da linha de comando.

    
por 23.10.2009 / 17:01
1

Existem algumas maneiras de fazer download usando a linha de comando no Windows:

  1. Você pode usar o Cygwin .

    Nota: os aplicativos incluídos não são aplicativos nativos do Linux. Você deve reconstruir seu aplicativo a partir do código-fonte, se desejar executar no Windows.

  2. Usando o telnet, é possível fazer uma solicitação, mas você não verá nenhum processamento.

  3. Você pode escrever scripts bat ou VBS.

  4. Escreva seu próprio programa que você pode executar a partir do cmd.exe.

por 20.08.2011 / 05:22
1

Você pode instalar o aplicativo do Linux Wget no Windows. Ele pode ser baixado do link . Você pode então emitir o comando 'wget (inserturlhere)' ou qualquer outro URL em seu prompt de comando, e ele permitirá que você para fazer o download desse URL / arquivo / imagem.

    
por 23.10.2009 / 17:06
0

No Windows padrão, você não pode fazer o download via HTTP. O Windows é um sistema operacional centrado na GUI, portanto, ele não possui muitas das ferramentas de linha de comando encontradas em outros sistemas operacionais, como wget , que seria o principal candidato.

System.Net.WebClient.DownloadFile() , uma função na API WiniNet , pode fazer o download de arquivos, mas não tenho certeza de até onde você está indo para o desenvolvimento real em comparação com um arquivo em lote.

    
por 23.10.2009 / 17:04
0

Se você tem python instalado, aqui está um exemplo que busca o get-pip.py da web

python -c "import urllib; urllib.urlretrieve ('https://bootstrap.pypa.io/get-pip.py', r'C:\python27\Tools\get-pip.py')"
    
por 30.08.2014 / 01:15
0

O arquivo pode ser baixado pelo método abaixo

bitsadmin / transferência wcb / prioridade alta link C: \ Arquivos de Programas (x86) \ Dell Update \ Agenda21.pdf

    
por 16.12.2017 / 22:25