Baixando arquivos em PURE BATCH ...
Sem qualquer JScript, VBScript, Powershell, etc ... Apenas puro Batch!
Algumas pessoas estão dizendo que não é possível baixar arquivos com um script em lote sem usar JScript ou VBScript, etc ... Mas eles estão definitivamente errados!
Aqui está um método simples que parece funcionar muito bem para baixar arquivos em seus scripts em lote. Deve estar funcionando em quase qualquer URL de arquivo. É até possível usar um servidor proxy, se necessário.
Para baixar arquivos, podemos usar o BITSADMIN.EXE do sistema Windows. Não há necessidade de baixar / instalar nada ou usar qualquer JScript ou VBScript, etc. O Bitsadmin.exe está presente na maioria das versões do Windows, provavelmente do XP ao Windows 10.
Aproveitar!
USO:
Você pode usar o comando BITSADMIN diretamente, desta forma:
bitsadmin /transfer mydownloadjob /download /priority FOREGROUND "http://example.com/File.zip" "C:\Downloads\File.zip"
Servidor proxy:
Para conectar-se usando um proxy, use este comando antes de baixar.
bitsadmin /setproxysettings mydownloadjob OVERRIDE "proxy-server.com:8080" "<local>"
Clique neste LINK se quiser mais informações sobre BITSadmin.exe
SOLUÇÃO DE PROBLEMAS:
Se você receber este erro: "Não foi possível conectar ao BITS - 0x80070422",
certifique-se de que o serviço do Windows "Serviço de transferência inteligente de plano de fundo (BITS)" esteja ativado e tente novamente. (Deve estar habilitado por padrão.)
FUNÇÕES PERSONALIZADAS
Call :DOWNLOAD_FILE "URL"
Call :DOWNLOAD_PROXY_ON "SERVER:PORT"
Call :DOWNLOAD_PROXY_OFF
Fiz essas 3 funções para simplificar os comandos bitsadmin. É mais fácil de usar e lembrar. Pode ser particularmente útil se você o estiver usando várias vezes em seus scripts.
ATENÇÃO ...
Antes de usar essas funções, primeiro você precisa copiá-las de CUSTOM_FUNCTIONS.CMD para o final do seu script. Há também um exemplo completo: DOWNLOAD-EXAMPLE.CMD
: DOWNLOAD_FILE "URL"
A função principal, irá baixar os arquivos de URL.
: DOWNLOAD_PROXY_ON "SERVER: PORT"
(Opcional) Você pode usar esta função se precisar usar um servidor proxy.
Chamar a função: DOWNLOAD_PROXY_OFF desabilitará o servidor proxy.
EXEMPLO:
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
DOWNLOAD-EXAMPLE.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