Download dei file in PURE BATCH ...
Senza JScript, VBScript, Powershell, ecc ... Solo puro Batch!
Alcune persone dicono che non è possibile scaricare file con uno script batch senza utilizzare JScript o VBScript, ecc ... Ma si sbagliano decisamente!
Ecco un metodo semplice che sembra funzionare abbastanza bene per scaricare i file negli script batch. Dovrebbe funzionare su quasi tutti gli URL dei file. È anche possibile utilizzare un server proxy, se necessario.
Per scaricare i file, possiamo utilizzare BITSADMIN.EXE dal sistema Windows. Non è necessario scaricare / installare nulla o utilizzare JScript o VBScript, ecc. Bitsadmin.exe è presente sulla maggior parte delle versioni di Windows, probabilmente da XP a Windows 10.
Godere!
USO:
Puoi usare direttamente il comando BITSADMIN, in questo modo:
bitsadmin /transfer mydownloadjob /download /priority FOREGROUND "http://example.com/File.zip" "C:\Downloads\File.zip"
Server proxy:
per connettersi utilizzando un proxy, utilizzare questo comando prima del download.
bitsadmin /setproxysettings mydownloadjob OVERRIDE "proxy-server.com:8080" "<local>"
Fare clic su questo LINK se si desiderano ulteriori informazioni su BITSadmin.exe
RISOLUZIONE DEI PROBLEMI:
Se viene visualizzato questo errore: "Impossibile connettersi a BITS - 0x80070422"
Assicurati che il servizio Windows "Servizio trasferimento intelligente in background (BITS)" sia abilitato e riprova. (Dovrebbe essere abilitato per impostazione predefinita.)
FUNZIONI PERSONALIZZATE
Call :DOWNLOAD_FILE "URL"
Call :DOWNLOAD_PROXY_ON "SERVER:PORT"
Call :DOWNLOAD_PROXY_OFF
Ho creato queste 3 funzioni per semplificare i comandi bitsadmin. È più facile da usare e da ricordare. Può essere particolarmente utile se lo usi più volte nei tuoi script.
NOTA BENE ...
Prima di utilizzare queste funzioni, dovrai prima copiarle da CUSTOM_FUNCTIONS.CMD alla fine del tuo script. C'è anche un esempio completo: DOWNLOAD-EXAMPLE.CMD
: DOWNLOAD_FILE "URL"
La funzione principale, scaricherà i file da URL.
: DOWNLOAD_PROXY_ON "SERVER: PORT"
(Opzionale) È possibile utilizzare questa funzione se è necessario utilizzare un server proxy.
La chiamata alla funzione: DOWNLOAD_PROXY_OFF disabiliterà il server proxy.
ESEMPIO:
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