Pobieranie plików w PURE BATCH ...
Bez JScript, VBScript, Powershell itp ... Tylko czysty Batch!
Niektórzy twierdzą, że nie jest możliwe pobieranie plików za pomocą skryptu wsadowego bez użycia języka JScript lub VBScript itp ... Ale zdecydowanie się mylą!
Oto prosta metoda, która wydaje się działać całkiem nieźle w przypadku pobierania plików w skryptach wsadowych. Powinien działać na prawie każdym adresie URL pliku. W razie potrzeby można nawet użyć serwera proxy.
Do pobrania plików możemy użyć BITSADMIN.EXE z systemu Windows. Nie ma potrzeby pobierania / instalowania czegokolwiek ani używania języka JScript lub VBScript itp. Bitsadmin.exe jest obecny w większości wersji systemu Windows, prawdopodobnie od XP do Windows 10.
Cieszyć się!
STOSOWANIE:
Możesz użyć polecenia BITSADMIN bezpośrednio, na przykład:
bitsadmin /transfer mydownloadjob /download /priority FOREGROUND "http://example.com/File.zip" "C:\Downloads\File.zip"
Serwer proxy:
Aby połączyć się przez serwer proxy, użyj tego polecenia przed pobraniem.
bitsadmin /setproxysettings mydownloadjob OVERRIDE "proxy-server.com:8080" "<local>"
Kliknij to LINK, jeśli chcesz uzyskać więcej informacji na temat BITSadmin.exe
ROZWIĄZYWANIE PROBLEMÓW:
Jeśli pojawi się ten błąd: „Nie można połączyć się z usługą BITS - 0x80070422”
Upewnij się, że usługa systemu Windows „Usługa inteligentnego transferu w tle (BITS)” jest włączona i spróbuj ponownie. (Powinien być domyślnie włączony).
NIESTANDARDOWE FUNKCJE
Call :DOWNLOAD_FILE "URL"
Call :DOWNLOAD_PROXY_ON "SERVER:PORT"
Call :DOWNLOAD_PROXY_OFF
Zrobiłem te 3 funkcje dla uproszczenia poleceń bitsadmin. Jest łatwiejszy w użyciu i zapamiętywaniu. Może to być szczególnie przydatne, jeśli używasz go wielokrotnie w swoich skryptach.
PROSZĘ
PAMIĘTAĆ ... Przed użyciem tych funkcji należy najpierw skopiować je z CUSTOM_FUNCTIONS.CMD na koniec skryptu. Jest też kompletny przykład: POBIERZ-PRZYKŁAD.CMD
: DOWNLOAD_FILE "URL"
Główna funkcja pobierze pliki z adresu URL.
: DOWNLOAD_PROXY_ON "SERVER: PORT"
(Opcjonalnie) Możesz użyć tej funkcji, jeśli musisz użyć serwera proxy.
Wywołanie funkcji: DOWNLOAD_PROXY_OFF wyłączy serwer proxy.
PRZYKŁAD:
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
POBIERZ-PRZYKŁAD.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