Завантаження файлів у PURE BATCH ...
Без жодного JScript, VBScript, Powershell тощо ... Тільки чиста партія!
Деякі люди кажуть, що неможливо завантажувати файли з пакетним сценарієм без використання жодного JScript або VBScript тощо. Але вони, безумовно, помиляються!
Ось простий метод, який, здається, працює досить добре для завантаження файлів у пакетні сценарії. Він повинен працювати над URL-адресою будь-якого файлу. Можна навіть використовувати проксі-сервер, якщо він вам потрібен.
Для завантаження файлів ми можемо використовувати BITSADMIN.EXE з системи Windows. Немає необхідності завантажувати / встановлювати що-небудь або використовувати будь-який JScript або VBScript тощо. Bitsadmin.exe присутній у більшості версій Windows, ймовірно, від XP до Windows 10.
Насолоджуйтесь!
ВИКОРИСТАННЯ:
Ви можете використовувати команду BITSADMIN безпосередньо, наприклад:
bitsadmin /transfer mydownloadjob /download /priority FOREGROUND "http://example.com/File.zip" "C:\Downloads\File.zip"
Проксі-сервер:
для підключення за допомогою проксі-сервера перед завантаженням використовуйте цю команду.
bitsadmin /setproxysettings mydownloadjob OVERRIDE "proxy-server.com:8080" "<local>"
Натисніть цю LINK , якщо ви хочете отримати більше інформації про BITSadmin.exe
ВИМКУВАННЯ:
Якщо ви отримаєте цю помилку: "Не вдається підключитися до BITS - 0x80070422"
Переконайтеся, що служба Windows "Служба фонової інтелектуальної передачі (BITS)" увімкнена і повторіть спробу. (Це повинно бути включено за замовчуванням.)
МИТНІ ФУНКЦІЇ
Call :DOWNLOAD_FILE "URL"
Call :DOWNLOAD_PROXY_ON "SERVER:PORT"
Call :DOWNLOAD_PROXY_OFF
Я зробив ці 3 функції для спрощення команд bitsadmin. Це простіше використовувати і запам'ятати. Це може бути особливо корисно, якщо ви використовуєте його кілька разів у своїх сценаріях.
УВАГА ПРИМІТКА ...
Перш ніж використовувати ці функції, спочатку потрібно буде скопіювати їх з CUSTOM_FUNCTIONS.CMD до кінця сценарію. Також є повний приклад: DOWNLOAD-EXAMPLE.CMD
: DOWNLOAD_FILE "URL"
Основна функція, завантажує файли з URL.
: DOWNLOAD_PROXY_ON "SERVER: PORT"
(необов'язково) Ви можете використовувати цю функцію, якщо вам потрібно використовувати проксі-сервер.
Виклик: DOWNLOAD_PROXY_OFF функція відключить проксі-сервер.
ПРИКЛАД:
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
СКАЧАТИ-ПРИКЛАД.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