Téléchargement de fichiers dans PURE BATCH ...
Sans JScript, VBScript, Powershell, etc ... Seulement du pur Batch!
Certaines personnes disent qu'il n'est pas possible de télécharger des fichiers avec un script batch sans utiliser de JScript ou VBScript, etc ... Mais ils se trompent définitivement!
Voici une méthode simple qui semble fonctionner assez bien pour télécharger des fichiers dans vos scripts batch. Il devrait fonctionner sur presque toutes les URL de fichiers. Il est même possible d'utiliser un serveur proxy si vous en avez besoin.
Pour télécharger des fichiers, nous pouvons utiliser BITSADMIN.EXE à partir du système Windows. Il n'est pas nécessaire de télécharger / installer quoi que ce soit ou d'utiliser n'importe quel JScript ou VBScript, etc. Bitsadmin.exe est présent sur la plupart des versions de Windows, probablement de XP à Windows 10.
Prendre plaisir!
USAGE:
Vous pouvez utiliser la commande BITSADMIN directement, comme ceci:
bitsadmin /transfer mydownloadjob /download /priority FOREGROUND "http://example.com/File.zip" "C:\Downloads\File.zip"
Serveur proxy:
pour vous connecter à l'aide d'un proxy, utilisez cette commande avant de télécharger.
bitsadmin /setproxysettings mydownloadjob OVERRIDE "proxy-server.com:8080" "<local>"
Cliquez sur ce LIEN si vous voulez plus d'informations sur BITSadmin.exe
DEPANNAGE:
Si vous obtenez cette erreur: «Impossible de se connecter à BITS - 0x80070422»
Assurez-vous que le service Windows «Service de transfert intelligent en arrière-plan (BITS)» est activé et réessayez. (Il doit être activé par défaut.)
FONCTIONS PERSONNALISÉES
Call :DOWNLOAD_FILE "URL"
Call :DOWNLOAD_PROXY_ON "SERVER:PORT"
Call :DOWNLOAD_PROXY_OFF
J'ai créé ces 3 fonctions pour simplifier les commandes bitsadmin. C'est plus facile à utiliser et à retenir. Cela peut être particulièrement utile si vous l'utilisez plusieurs fois dans vos scripts.
VEUILLEZ NOTER ...
Avant d'utiliser ces fonctions, vous devrez d'abord les copier de CUSTOM_FUNCTIONS.CMD à la fin de votre script. Il existe également un exemple complet: DOWNLOAD-EXAMPLE.CMD
: DOWNLOAD_FILE "URL"
La fonction principale, va télécharger des fichiers depuis l'URL.
: DOWNLOAD_PROXY_ON "SERVER: PORT"
(facultatif) Vous pouvez utiliser cette fonction si vous devez utiliser un serveur proxy.
L'appel de la fonction: DOWNLOAD_PROXY_OFF désactivera le serveur proxy.
EXEMPLE:
CALL :DOWNLOAD_PROXY_ON "proxy-server.com:8080"
CALL :DOWNLOAD_FILE "http://example.com/File.zip" "C:\Downloads\File.zip"
CALL :DOWNLOAD_PROXY_OFF
CUSTOM_FUNCTIONS.CMD
:DOWNLOAD_FILE
rem BITSADMIN COMMAND FOR DOWNLOADING FILES:
bitsadmin /transfer mydownloadjob /download /priority FOREGROUND %1 %2
GOTO :EOF
:DOWNLOAD_PROXY_ON
rem FUNCTION FOR USING A PROXY SERVER:
bitsadmin /setproxysettings mydownloadjob OVERRIDE %1 "<local>"
GOTO :EOF
:DOWNLOAD_PROXY_OFF
rem FUNCTION FOR STOP USING A PROXY SERVER:
bitsadmin /setproxysettings mydownloadjob NO_PROXY
GOTO :EOF
TELECHARGER-EXEMPLE.CMD
@ECHO OFF
SETLOCAL
rem FOR DOWNLOADING FILES, THIS SCRIPT IS USING THE "BITSADMIN.EXE" SYSTEM FILE.
rem IT IS PRESENT ON MOST WINDOWS VERSION, PROBABLY FROM WINDOWS XP TO WINDOWS 10.
:SETUP
rem URL (5MB TEST FILE):
SET "FILE_URL=http://ipv4.download.thinkbroadband.com/5MB.zip"
rem SAVE IN CUSTOM LOCATION:
rem SET "SAVING_TO=C:\Folder\5MB.zip"
rem SAVE IN THE CURRENT DIRECTORY
SET "SAVING_TO=5MB.zip"
SET "SAVING_TO=%~dp0%SAVING_TO%"
:MAIN
ECHO.
ECHO DOWNLOAD SCRIPT EXAMPLE
ECHO.
ECHO FILE URL: "%FILE_URL%"
ECHO SAVING TO: "%SAVING_TO%"
ECHO.
rem UNCOMENT AND MODIFY THE NEXT LINE IF YOU NEED TO USE A PROXY SERVER:
rem CALL :DOWNLOAD_PROXY_ON "PROXY-SERVER.COM:8080"
rem THE MAIN DOWNLOAD COMMAND:
CALL :DOWNLOAD_FILE "%FILE_URL%" "%SAVING_TO%"
rem UNCOMMENT NEXT LINE FOR DISABLING THE PROXY (IF YOU USED IT):
rem CALL :DOWNLOAD_PROXY_OFF
:RESULT
ECHO.
IF EXIST "%SAVING_TO%" ECHO YOUR FILE HAS BEEN SUCCESSFULLY DOWNLOADED.
IF NOT EXIST "%SAVING_TO%" ECHO ERROR, YOUR FILE COULDN'T BE DOWNLOADED.
ECHO.
:EXIT_SCRIPT
PAUSE
EXIT /B
rem FUNCTIONS SECTION
:DOWNLOAD_FILE
rem BITSADMIN COMMAND FOR DOWNLOADING FILES:
bitsadmin /transfer mydownloadjob /download /priority FOREGROUND %1 %2
GOTO :EOF
:DOWNLOAD_PROXY_ON
rem FUNCTION FOR USING A PROXY SERVER:
bitsadmin /setproxysettings mydownloadjob OVERRIDE %1 "<local>"
GOTO :EOF
:DOWNLOAD_PROXY_OFF
rem FUNCTION FOR STOP USING A PROXY SERVER:
bitsadmin /setproxysettings mydownloadjob NO_PROXY
GOTO :EOF