it-swarm-eu.dev

È possibile scaricare utilizzando la riga di comando di Windows?

Senza l'utilizzo di utility non standard (Windows incluse), è possibile scaricare utilizzando la riga di comando di Windows?

La versione preferita è Windows XP, ma è anche interessante sapere per le versioni più recenti.

Per chiarire ulteriormente la mia domanda:

  • Deve usare HTTP
  • Il file deve essere salvato
  • Installazione standard di Windows pulita, senza strumenti aggiuntivi

Quindi, in pratica, dato che tutti stanno urlandoWget, voglio una semplice funzionalità di Wget, senza usare Wget.

122
Robert Massa

È possibile scrivere un VBScript ed eseguirlo dalla riga di comando

Crea un file downloadfile.vbs e inserisci le seguenti righe di codice:

' 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

Eseguilo dalla riga di comando come segue:

cscript.exe downloadfile.vbs 
51
Igor

A partire da Windows 7, credo che ci sia un solo metodo che non è stato ancora menzionato, è facile:

Sintassi:

bitsadmin/transfer nome del lavoro        / download/priorità prioritàURLpercorso\file\locale

Esempio:

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

(Suddiviso in due righe separate con ^ per la leggibilità (per evitare lo scorrimento).)

Avvertenza: Come sottolineato nei commenti, il messaggio di aiuto bitsadmin inizia dicendo:

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.

... ma un altro commento ha riferito che funziona su Windows 8.

74
timeshift

Windows 7 include PowerShell e praticamente non c'è nulla che tu non possa fare con PowerShell.

Alternativa nativa a wget in Windows PowerShell?

39
user15130

PowerShell (incluso in Windows 8 e incluso in .NET per versioni precedenti) ha questa capacità. Il comando powershell consente di eseguire comandi PowerShell arbitrari dalla riga di comando o un file .bat. Quindi, la seguente riga è ciò che è voluto:

powershell -command "& { (New-Object Net.WebClient).DownloadFile('http://example.com/', 'c:\somefile') }"
25
Nik

Ho trovato un modo per farlo, ma davvero, basta installare Wget .

È possibile utilizzare Internet Explorer da una riga di comando (iexplore.exe) e quindi immettere un URL come argomento. Quindi, esegui:

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

Qualunque sia il file, dovrai specificare che non ha bisogno di conferma prima del tempo. Ecco, eseguirà automaticamente il download. Quindi sì, è tecnicamente possibile, ma il buon signore lo fa in un modo diverso.

17
DHayes

Windows Explorer (da non confondere con Internet Explorer) può scaricare file via HTTP. Basta inserire l'URL nella barra degli indirizzi. O dalla riga di comando, ad esempio, C:\windows\Explorer.exe http://somewhere.com/filename.ext.

Ottieni il classico Scarica file Prompt. A meno che il file non sia un tipo che Esplora risorse sa come visualizzare inline, (.html, .jpg, .gif), nel qual caso sarà necessario fare clic con il pulsante destro del mouse per salvarlo.

Ho appena provato questo sul mio VMware immagine di un'installazione vergine di Windows XP 2002 SP1, e funziona perfettamente.

12
Chris Noe

Puoi usare (in un bat di Windows standard):

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

Sembra richiedere PowerShell v4 ...

(Grazie a quel commento e questo )

7
Anthony O.

Usa FTP.

Dalla riga di comando:

ftp ftp.somesite.com
user
password

ecc. FTP è incluso in ogni versione di Windows che posso ricordare; probabilmente non in 3.1, forse non in Windows 95 , ma sicuramente tutto dopo.

@ RM: Sarà brutto se non vuoi scaricare altri strumenti. Esiste una riga di comando Wget per Windows e Wget è progettato per fare esattamente quello che stai chiedendo.

6
Satanicpuppy

Usa PowerShell in questo modo:

  1. Creare un file download.ps1:

    param($url, $filename)
    $client = new-object System.Net.WebClient 
    $client.DownloadFile( $url, $filename)
    
  2. Ora puoi scaricare un file come questo:

    powershell Set-ExecutionPolicy Unrestricted
    powershell -ExecutionPolicy RemoteSigned -File "download.ps1" "http://somewhere.com/filename.ext" "d:\filename.ext"
    
4
Thomas Jespersen

Il file può essere scaricato tramite il metodo seguente

bitsadmin/transfer wcb/priorità alta https://sustainabledevelopment.un.org/content/documents/Agenda21.pdf C:\Programmi (x86)\Dell Update\Agenda21.pdf

1
Mansur Ali

Se installi Telnet, immagino che potresti fare una richiesta HTTP a un server per scaricare un file.

Puoi anche installare Cygwin , e usare wget per scaricare anche un file. Questo è un modo molto semplice per scaricare file dalla riga di comando.

1
EvilChookie

È possibile installare l'applicazione Linux Wget su Windows. Può essere scaricato da http://gnuwin32.sourceforge.net/packages/wget.htm . Puoi quindi inviare il comando 'wget (inserturlhere)' o qualsiasi altro URL nel tuo prompt dei comandi, e ti permetterà di scaricare quell'URL/file/immagine.

1
Jamie

Ci sono alcuni modi che puoi scaricare usando la riga di comando in Windows:

  1. Puoi usare Cygwin .

    Nota: le app incluse non sono app native di Linux. È necessario ricreare l'applicazione dal sorgente se si desidera eseguire su Windows.

  2. Usando Telnet è possibile fare una richiesta ma non vedrai alcuna elaborazione.

  3. Puoi scrivere bat o script VBS.

  4. Scrivi il tuo programma che puoi eseguire da cmd.exe.

1
Jesus

Se hai installato python ecco un esempio che recupera get-pip.py dal web

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

In Windows predefinito, non è possibile scaricare tramite HTTP. Windows è un sistema operativo incentrato sulla GUI, quindi manca di molti degli strumenti della riga di comando che si trovano in altri sistemi operativi, come wget, che sarebbe il candidato principale.

System.Net.WebClient.DownloadFile(), una funzione nell'API WiniNet, può scaricare file, ma non sono sicuro di quanto si stia andando nello sviluppo effettivo rispetto a un file batch.

0
Andrew Scagnelli