Sans utiliser d'utilitaires non standard (Windows inclus), est-il possible de télécharger à l'aide de la ligne de commande Windows?
La version préférée est Windows XP, mais il est également intéressant de connaître les versions plus récentes.
Pour clarifier davantage ma question:
En gros, puisque tout le monde crieWget, je veux une fonctionnalité Wget simple, sans utiliser Wget.
Vous pouvez écrire un script VBScript et l'exécuter à partir de la ligne de commande
Créez 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 à partir de la ligne de commande comme suit:
cscript.exe downloadfile.vbs
À partir de Windows 7, je pense qu’une méthode simple, qui n’a pas encore été mentionnée, est simple:
Syntaxe:
bitsadmin/transfer nom du travail / télécharger/priorité prioritéURLlocal\chemin\fichier
Exemple:
bitsadmin/transfer mydownloadjob/download/priorité normale ^ http://example.com/nomfichier.Zip C:\Utilisateurs \username\ Téléchargements\nom_fichier.Zip
(Divisé en deux lignes distinctes avec ^
pour plus de lisibilité (pour éviter le défilement).)
Avertissement: Comme indiqué dans les commentaires, le message d'aide bitsadmin
commence par indiquer:
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 a signalé que cela fonctionne sur Windows 8.
Windows 7 inclut PowerShell et il n’ya pratiquement rien que vous ne puissiez faire avec PowerShell.
PowerShell (inclus avec Windows 8 et .NET pour les versions précédentes) offre cette fonctionnalité. La commande powershell
permet d'exécuter des commandes PowerShell arbitraires à partir de la ligne de commande ou d'un fichier .bat
. Ainsi, la ligne suivante est ce qui est recherché:
powershell -command "& { (New-Object Net.WebClient).DownloadFile('http://example.com/', 'c:\somefile') }"
J'ai trouvé un moyen de le faire, mais vraiment, installez simplement Wget .
Vous pouvez utiliser Internet Explorer à partir d'une ligne de commande (iexplore.exe), puis entrer une URL en tant qu'argument. Alors, lancez:
iexplore.exe http://blah.com/filename.Zip
Quel que soit le fichier, vous devrez spécifier qu'il n'a pas besoin de confirmation à l'avance. Et voilà, il effectuera automatiquement le téléchargement. Donc oui, c'est techniquement possible, mais bon seigneur le fait d'une manière différente.
Windows Explorer (à ne pas confondre avec Internet Explorer) peut télécharger des fichiers via HTTP. Il suffit d'entrer l'URL dans la barre d'adresse. Ou à partir de la ligne de commande, par exemple, C:\windows\Explorer.exe http://somewhere.com/filename.ext
.
Vous obtenez le classique Téléchargement de fichier Invite. À moins que le fichier ne soit un type que l'explorateur Windows sait comment afficher en ligne (.html, .jpg, .gif), vous devrez alors cliquer avec le bouton droit de la souris pour le sauvegarder.
Je viens de tester ceci sur mon VMware image d’une installation vierge de Windows XP 2002 SP1, et cela fonctionne bien.
Vous pouvez utiliser (dans une batte Windows standard):
powershell -command "& { iwr http://www.it1.net/it1_logo2.jpg -OutFile logo.jpg }"
Il semble nécessiter PowerShell v4 ...
(Merci à ce commentaire et celui-ci )
Utilisez FTP.
A partir de la ligne de commande:
ftp ftp.somesite.com
user
password
etc. FTP est inclus dans toutes les versions de Windows dont je me souviens. probablement pas en 3.1, peut-être pas dans Windows 95 , mais certainement tout par la suite.
@RM: Cela va être difficile si vous ne voulez pas télécharger d'autres outils. Il existe une ligne de commande Wget pour Windows et Wget est conçu pour faire exactement ce que vous demandez.
Utilisez PowerShell comme ceci:
Créez un fichier download.ps1:
param($url, $filename)
$client = new-object System.Net.WebClient
$client.DownloadFile( $url, $filename)
Vous pouvez maintenant télécharger un fichier comme celui-ci:
powershell Set-ExecutionPolicy Unrestricted
powershell -ExecutionPolicy RemoteSigned -File "download.ps1" "http://somewhere.com/filename.ext" "d:\filename.ext"
Le fichier peut être téléchargé via la méthode ci-dessous
bitsadmin/transfer wcb/priority high https://sustainabledevelopment.un.org/content/documents/Agenda21.pdf C:\Fichiers de programme (x86)\Dell Update\Agenda21.pdf
Vous pouvez installer l'application Linux Wget sous Windows. Il peut être téléchargé à partir de http://gnuwin32.sourceforge.net/packages/wget.htm . Vous pouvez ensuite émettre la commande 'wget (inserturlhere)' ou tout autre URL dans l'invite de commande, ce qui vous permettra de télécharger cette URL/ce fichier/cette image.
Il existe plusieurs méthodes de téléchargement à l'aide de la ligne de commande de Windows:
Vous pouvez utiliser Cygwin .
Remarque: les applications incluses ne sont pas des applications Linux natives. Vous devez reconstruire votre application à partir des sources si vous souhaitez exécuter Windows.
En utilisant telnet, il est possible de faire une demande mais vous ne verrez aucun traitement.
Vous pouvez écrire des scripts bat ou VBS.
Écrivez votre propre programme que vous pouvez exécuter à partir de cmd.exe.
Si vous avez installé python, voici un exemple qui récupère le get-pip.py sur le Web
python -c "import urllib; urllib.urlretrieve ('https://bootstrap.pypa.io/get-pip.py', r'C:\python27\Tools\get-pip.py')"
Par défaut, Windows, vous ne pouvez pas télécharger via HTTP. Windows est un système d’exploitation centré sur l’interface graphique, de sorte qu’il manque beaucoup des outils en ligne de commande que vous trouverez dans les autres systèmes d’exploitation, tels que wget
, qui serait le candidat idéal.
System.Net.WebClient.DownloadFile()
, une fonction de l'API WiniNet
, permet de télécharger des fichiers, mais je ne sais pas dans quelle mesure le développement actuel est avancé par rapport à un fichier de traitement par lots.