Wget / cURL alternativo a Windows?


60

Esiste un'utilità della riga di comando di tipo Wget o cURL nativa di Windows Vista ? Come funziona?


Anche Microsoft distribuisce wget.exein IIS Administration Pack.
paradroid,


1
Usare curl solo per scaricare cose è come usare vim solo per la funzione regex e poi dire una domanda su vim è un duplicato di una domanda su regexes. Sì, il download di file di dati è una parte enorme di HTTP ma non è il suo scopo principale.
erikbwork,

Ottobre 2017 con Windows 8.1: wget e ricciolo sono inclusi in PowerShell, come illustrato di seguito: stackoverflow.com/questions/33364752/...
SDsolar

No, le versioni * nix di wgete curlnon sono incluse in PowerShell. Il Invoke-WebRequestcmdlet di PowerShell è alias come entrambi wgete curl. Funziona in modo simile per richieste molto semplici, ma ha parametri sostanzialmente diversi.
Mashmagar,

Risposte:


32

Nativo di Windows (viene preinstallato e dipende dal servizio Windows di Background Intelligent Transfer Service (BITS)):

bitsadmin

Può fare quello che fa Wget, e probabilmente di più (puoi controllare un lavoro in corso tramite comandi simili ad API - ad esempio puoi ottenere la velocità dello stato e annullare se è troppo lento).

Esempio di utilizzo della mia esperienza (è possibile eseguire download paralleli nello stesso .bat o eseguire download sequenziali nello stesso lavoro):

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: funziona su Windows XP, 7, 8 e 10 (testato su Windows 10 Pro). Su Windows XP deve essere installato manualmente dagli Strumenti di supporto SP2 .

Nell'ultimo Windows 10 l'avviso di deprecazione è sparito, quindi sembra che questo utile strumento sia qui per rimanere.


2
check out / SetNotifyCmdLine opzione se è necessario utilizzare questo comando in sequenza in un .bat
Tiberiu-Ionuț Stan

5
L'esecuzione di bitsadmin in Windows 7 visualizza il seguente avviso: 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.Gli utenti devono fare attenzione.
yop83,

"Gli strumenti di amministrazione per il servizio BITS sono ora forniti dai cmdlet di BITS PowerShell." Non c'è molto da stare attenti. Solo il client BITS è obsoleto, mentre il servizio BITS rimarrà. Sarà accessibile con un altro client, simile per funzionalità, (PowerShell verrà preinstallato con le versioni future di Windows).
Tiberiu-Ionuț Stan,

Nota: il client bitsadmin è presente in Windows 8, con lo stesso avviso di deprecazione.
Tiberiu-Ionuț Stan,

2
Sembra un'alternativa a un gestore di download, non a un crafter di richiesta HTTP, vero?
erikbwork,

18

PowerShell v3 CTP1 viene fornito con un comando come wget / curl. Si chiama Invoke-WebRequest . Per saperne di più, puoi visitare il post Windows Powershell V3 include il comando come wget / curl .


2
Vedo sia superuser.com/a/25540/106977 che superuser.com/a/330754/106977 fare riferimento ai comandi Powershell. Non ho provato nessuno dei due, ma quei link sono correlati a questo post.
bgoodr,

Questa è un'ottima utility e viene fornita con Windows Server 2012 R2.
sfuqua,


Come so, Invoke-WebRequestnon posso ignorare gli errori di certificato (una funzione molto utile per gli sviluppatori). Almeno nella versione 3.0
maxkoryukov

Non riesco Invoke-WebRequesta ignorare gli errori di certificato in PowerShell 5.1, ma la documentazione in PowerShell 6 include un SkipCertificateCheckflag: docs.microsoft.com/en-us/powershell/module/…
Mashmagar

11

Uso spesso PowerShell per cose semplici, come DownloadString di WebClient :

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

O DownloadFilese vuoi qualcosa scaricato come wgetfa e impacchettalo in una funzione. Naturalmente, questo è molto approssimativo e non avrà nessuna delle bellezze come download ripristinabili e simili.


Usando DownloadFile. ha funzionato quando l'ho provato (PowerShell 2.0): $wc.DownloadFile('http://traffic.libsyn.com/makingembeddedsystems/embedded-ep149.mp3', 'EmbeddedFm_149.mp3'). Tuttavia, non ci sono informazioni sullo stato di avanzamento durante il download.
Peter Mortensen,

@PeterMortensen: Certo che no. È solo un oggetto .NET. DownloadProgressChangedTuttavia, è possibile collegare un gestore eventi . Ma suppongo che dovrai anche utilizzare le varianti asincrone dei metodi.
Joey,

6

Sembra che devi solo scaricare un browser alternativo. Puoi usare questo comando per scaricare Mozilla Firefox con il prompt dei comandi:

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

Questo avvia anche Internet Explorer, ma solo con un set di funzionalità di base. Questo dovrebbe funzionare anche se Internet Explorer è rotto (nella maggior parte dei casi).

Puoi anche usare il comando FTP. Digitare quanto segue nei comandi del prompt dei comandi:

  1. Tipo FTP: che apre il client FTP
  2. Tipo open ftp.mozilla.org: che si collega a Mozilla-FTP
  3. Accedi come Anonimo e usa una password vuota.
  4. Digitare cd /pub/mozilla.org/firefox/releases/4.0.1/win32/en-US/-Per modificare la directory
  5. Tipo recv "Firefox Setup 4.0.1.exe": per scaricare il programma di installazione di Firefox. Il file si trova nella cartella corrente del prompt dei comandi. (di solito la tua Profilecartella)
  6. Digitare byeper chiudere il client FTP
  7. Digitare exitper chiudere il prompt dei comandi.

3
Bella risposta, ma completamente estranea alla domanda posta.
Antimonio

4
Um. Sembra sia un attualità che un esempio dell'utilizzo di explorer.exe come alternativa.
Michael Cole,

6

Non esiste davvero un'alternativa a Wget. Puoi utilizzare Wget per Windows e assegnare il percorso nelle variabili di ambiente per farlo funzionare come desideri.


1
Il problema è che la persona con cui sto lavorando sta ottenendo un blocco del browser all'avvio e non hanno accesso a un altro computer.
Giordania,

2
Se stanno eseguendo Ethernet, farli avviare in modalità provvisoria con rete?
Sandeep Bansal,

2

CURL nativo per Windows è disponibile qui . Esistono molte versioni disponibili con supporto SSL, senza supporto SSL. Non è necessario il bagaglio extra di Cygwin e simili, solo un piccolo file EXE.


1

Userei semplicemente Cygwin e installerei le librerie desiderate ... L'ho sempre fatto ...

In passato ho cercato alternative, sì. Ma Cygwin è solo lo strumento migliore per il lavoro.


2
Solo che è eccessivo installare i file di file per una tipica installazione di Cygwin solo per ottenere Wget.
Peter Mortensen,

Ottieni wget, curl, ... e molto altro. Suppongo che se hai bisogno di wget probabilmente in futuro utilizzerai alcuni strumenti linux aggiuntivi :) - sicuramente non uno screnario quotidiano
NicoJuicy

1

Ho creato il mio. Dai un'occhiata a https://github.com/acarrilho/global (nella parte inferiore della pagina).

Scarica l'origine e, utilizzando cmd.exe, passa alla cartella del richiedente. Da lì, basta digitare httpper vedere tutte le impostazioni disponibili. Come esempio:

http -u "http://www.example.com" -oc
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.