Загрузка файлов в 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>"
Щелкните эту ССЫЛКУ, если вам нужна дополнительная информация о 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 "СЕРВЕР: ПОРТ"
(необязательно) Вы можете использовать эту функцию, если вам нужно использовать прокси-сервер.
Вызов функции: 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