134 votes

Est-il possible de télécharger en utilisant la ligne de commande de Windows ?

Sans utiliser d'utilitaires non standard (inclus dans Windows), est-il possible de télécharger en utilisant la ligne de commande de Windows ?

La version préférée est Windows XP, mais il est également intéressant de le savoir pour les versions plus récentes.

Pour clarifier davantage ma question :

  • Il doit utiliser HTTP
  • Le fichier doit être enregistré
  • Installation standard propre de Windows, sans outils supplémentaires

Donc en gros, puisque tout le monde crie Wget Je veux une fonctionnalité Wget simple, sans utiliser Wget.

76voto

timeshift Points 869

En commençant par Windows 7, je crois qu'il y a une seule méthode qui n'a pas encore été mentionnée et qui est facile :

Syntaxe :

bitsadmin  /transfer _job\_name_       /download  /priority _priority_   _URL_  _local\\path\\file_

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

(Cassé en deux lignes distinctes avec ^ pour plus de lisibilité (pour éviter le défilement).

Attention : Comme indiqué dans les commentaires, le site bitsadmin Le message d'aide commence par dire :

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.

... mais un autre commentaire indique qu'il fonctionne sous Windows 8.

54voto

Vous pouvez écrire un VBScript et l'exécuter à partir de la ligne de commande.

Créer un fichier downloadfile.vbs et insérez les lignes de code suivantes :

' 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

Exécutez-le depuis la ligne de commande comme suit :

cscript.exe downloadfile.vbs

40voto

user15130 Points 517

Windows 7 inclut PowerShell et il n'y a pratiquement rien que vous ne puissiez faire avec PowerShell.

Alternative native à wget dans Windows PowerShell ?

26voto

Nik Points 269

PowerShell (inclus dans Windows 8 et inclus dans .NET pour les versions antérieures) a cette capacité. Le site powershell permet d'exécuter des commandes PowerShell arbitraires à partir de la ligne de commande ou d'une .bat fichier. Ainsi, la ligne suivante est ce que l'on veut :

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

19voto

J'ai trouvé un moyen de le faire, mais en réalité, il suffit d'installer Wget .

Vous pouvez utiliser Internet Explorer à partir d'une ligne de commande (iexplore.exe), puis saisir une URL comme argument. Donc, exécutez :

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

Quel que soit le fichier, vous devrez préciser qu'il n'a pas besoin d'être confirmé à l'avance. Et voilà, le téléchargement se fera automatiquement. Donc oui, c'est techniquement possible, mais le bon seigneur le fait d'une manière différente.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X