Descargando archivos en PURE BATCH ...
Sin JScript, VBScript, Powershell, etc ... ¡Solo puro Batch!
Algunas personas dicen que no es posible descargar archivos con un script por lotes sin usar JScript o VBScript, etc. ¡Pero definitivamente están equivocados!
Aquí hay un método simple que parece funcionar bastante bien para descargar archivos en sus scripts por lotes. Debería funcionar en casi cualquier URL de archivo. Incluso es posible utilizar un servidor proxy si lo necesita.
Para descargar archivos, podemos usar BITSADMIN.EXE desde el sistema de Windows. No es necesario descargar / instalar nada ni usar JScript o VBScript, etc. Bitsadmin.exe está presente en la mayoría de las versiones de Windows, probablemente desde XP hasta Windows 10.
¡Disfrutar!
USO:
Puede usar el comando BITSADMIN directamente, así:
bitsadmin /transfer mydownloadjob /download /priority FOREGROUND "http://example.com/File.zip" "C:\Downloads\File.zip"
Servidor proxy:
para conectarse mediante un proxy, utilice este comando antes de descargar.
bitsadmin /setproxysettings mydownloadjob OVERRIDE "proxy-server.com:8080" "<local>"
Haga clic en este ENLACE si desea más información sobre BITSadmin.exe
SOLUCIÓN DE PROBLEMAS:
Si recibe este error: "No se puede conectar a BITS - 0x80070422"
Asegúrese de que el servicio de Windows "Servicio de transferencia inteligente en segundo plano (BITS)" esté habilitado y vuelva a intentarlo. (Debería estar habilitado de forma predeterminada).
FUNCIONES PERSONALIZADAS
Call :DOWNLOAD_FILE "URL"
Call :DOWNLOAD_PROXY_ON "SERVER:PORT"
Call :DOWNLOAD_PROXY_OFF
Hice estas 3 funciones para simplificar los comandos bitsadmin. Es más fácil de usar y recordar. Puede ser particularmente útil si lo usa varias veces en sus scripts.
TENGA EN CUENTA ...
Antes de usar estas funciones, primero deberá copiarlas de CUSTOM_FUNCTIONS.CMD al final de su script. También hay un ejemplo completo: DOWNLOAD-EXAMPLE.CMD
: DOWNLOAD_FILE "URL"
La función principal, descargará archivos desde la URL.
: DOWNLOAD_PROXY_ON "SERVER: PORT"
(Opcional) Puede utilizar esta función si necesita utilizar un servidor proxy.
Llamar a la función: DOWNLOAD_PROXY_OFF desactivará el servidor proxy.
EJEMPLO:
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
DESCARGAR-EJEMPLO.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