Pobieranie pliku wsadowego systemu Windows z adresu URL


113

Próbuję pobrać plik z witryny internetowej (np. Http://www.example.com/package.zip ) przy użyciu pliku wsadowego systemu Windows. Otrzymuję kod błędu, kiedy piszę poniższą funkcję:

xcopy /E /Y "http://www.example.com/package.zip"

Wydaje się, że plik wsadowy nie lubi znaku „/” po http. Czy istnieją sposoby na uniknięcie tych znaków, aby nie zakładać, że są to parametry funkcji?


Tutaj: stackoverflow.com/questions/28143160/ ... Próbowałem wznowić sposoby pobierania plików w systemie Windows przy użyciu tylko natywnych narzędzi bez oprogramowania innych firm.
npocmaka

Odpowiedzi:


137

Z PowerShell 2.0 (preinstalowanym Windows 7) możesz używać:

(New-Object Net.WebClient).DownloadFile('http://www.example.com/package.zip', 'package.zip')

Począwszy od PowerShell 3.0 (preinstalowany Windows 8), możesz użyć Invoke-WebRequest:

Invoke-WebRequest http://www.example.com/package.zip -OutFile package.zip

Z pliku wsadowego są one nazywane:

powershell -Command "(New-Object Net.WebClient).DownloadFile('http://www.example.com/package.zip', 'package.zip')"
powershell -Command "Invoke-WebRequest http://www.example.com/package.zip -OutFile package.zip"

(PowerShell 2.0 jest dostępny do instalacji w XP, 3.0 dla Windows 7)


2
Chłodny! Lepszy niż bitsadmin.exe, ponieważ nie jest przestarzały.
sinelaw

@sevenforce, Czy 2,0 poleceń PowerShell również praca w PowerShell 3.0, czy też mają używać tego PowerShell składni 3.0?
Rich Signell

4
@RichSignell: polecenie 2.0 działa również w 3.0. W przypadku polecenia 2.0 zauważyłem przy okazji, że dla nie bezwzględnej ścieżki docelowej plik zostanie zapisany względem folderu domowego użytkownika.
sevenforce

1
To jest niesamowite. Szukałem tego tak długo. Dziękuję Ci! Nadal pracuje w 2017 r.
Albert MN.

2
Kod 2.0 działa dla mnie na aktualnym Win 7. A ponieważ działa również bez nadawania uprawnień administratora PowerShell, niech będzie to doskonały dowód koncepcji, że klikanie nieznanych .bati .ps1plików może naprawdę zepsuć twoje rzeczy.
1934286

97

Istnieje standardowy składnik systemu Windows, który może osiągnąć to, co próbujesz zrobić: BITS . Został dołączony do systemu Windows od XP i 2000 SP3.

Biegać:

bitsadmin.exe /transfer "JobName" http://download.url/here.exe C:\destination\here.exe

Nazwa zadania to po prostu nazwa wyświetlana zadania pobierania - ustaw ją na coś, co opisuje to, co robisz.


14
Niezłe narzędzie! Ale mój win8 mówi: „BITSAdmin jest przestarzały i nie ma gwarancji, że będzie dostępny w przyszłych wersjach systemu Windows. Narzędzia administracyjne dla usługi BITS są teraz dostarczane przez polecenia cmdlet BITS PowerShell”.
Peteter,

1
Jak już wspomniałem, bitsadmin nie działa w automatycznych partiach uruchamianych z harmonogramu zadań :(
TomeeNS

1
@cmroanirgo bitsadminnie jest dostępne w Windows XP Home Edition.
kaskadowy

1
Wciąż dobrze się
sprawdza

3
Dziękuję Ci! Działał jak urok na zainfekowanym komputerze bez żadnego innego możliwego sposobu pobrania pliku z sieci. (Nawet PowerShell nie mógł się uruchomić)
szab.kel

29

To może być trochę nie na temat, ale możesz łatwo pobrać plik za pomocą Powershell . Powershell jest dostarczany z nowoczesnymi wersjami systemu Windows, więc nie musisz instalować żadnych dodatkowych rzeczy na komputerze. Nauczyłem się, jak to zrobić, czytając tę ​​stronę:

http://teusje.wordpress.com/2011/02/19/download-file-with-powershell/

Kod był:

$webclient = New-Object System.Net.WebClient
$url = "http://www.example.com/file.txt"
$file = "$pwd\file.txt"
$webclient.DownloadFile($url,$file)

2
Jeśli przeszukujesz ten blog, znajdziesz inne przykłady PowerShell, które ułatwiają to dzięki nowej wersji PowerShell 3.0
juFo

Myślę, że nie potrzebujesz SystemwSystem.Net.WebClient
1934286

25

Ostatnio sprawdzałem, nie ma polecenia wiersza poleceń, aby połączyć się z adresem URL z wiersza poleceń MS. Wypróbuj wget dla Windows:
http://gnuwin32.sourceforge.net/packages/wget.htm

lub URL2File:
http://www.chami.com/free/url2file_wincon.html

W Linuksie możesz użyć "wget".

Alternatywnie możesz wypróbować VBScript. Są jak programy wiersza poleceń, ale są to skrypty interpretowane przez hosta skryptów wscript.exe. Oto przykład pobierania pliku za pomocą VBS:
/server/29707/download-file-from-vbscript


2
Nie potrzebujesz wget ani żadnej integracji innej firmy. BITS (standardowy składnik systemu Windows od XP) może to zrobić za pomocą narzędzia bitsadmin z wiersza poleceń MS. Odpowiedź wysłana - choć trochę spóźniona (2 lata za?)
brainwood

18

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

1
Właśnie zaktualizowałem moją odpowiedź ... Najwyraźniej prędkość pobierania była niesamowicie niska, więc zmieniłem parametr z „/ priority normal” na „/ priority foreground” i rozwiązałem problem. Powinien teraz wykorzystywać 100% dostępnej przepustowości. (Zamiast ~ 5%)
Frank Einstein

11
' Create an HTTP object
myURL = "http://www.google.com"
Set objHTTP = CreateObject( "WinHttp.WinHttpRequest.5.1" )

' Download the specified URL
objHTTP.Open "GET", myURL, False
objHTTP.Send
intStatus = objHTTP.Status

If intStatus = 200 Then
  WScript.Echo " " & intStatus & " A OK " +myURL
Else
  WScript.Echo "OOPS" +myURL
End If

następnie

C:\>cscript geturl.vbs
Microsoft (R) Windows Script Host Version 5.7
Copyright (C) Microsoft Corporation. All rights reserved.

200 A OK http://www.google.com

lub po prostu kliknij dwukrotnie, aby przetestować w systemie Windows


1
To tylko pobieranie do pamięci i jeszcze nie zapisywanie do pliku. Sprawdź tę odpowiedź, aby pobrać do pliku: stackoverflow.com/a/2973344/977804
Daniel,

5

AFAIK, system Windows nie ma wbudowanego narzędzia wiersza poleceń do pobrania pliku. Ale możesz to zrobić z VBScript i możesz wygenerować plik VBScript z partii za pomocą echa i przekierowania wyjścia:

@echo off

rem Windows has no built-in wget or curl, so generate a VBS script to do it:
rem -------------------------------------------------------------------------
set DLOAD_SCRIPT=download.vbs
echo Option Explicit                                                    >  %DLOAD_SCRIPT%
echo Dim args, http, fileSystem, adoStream, url, target, status         >> %DLOAD_SCRIPT%
echo.                                                                   >> %DLOAD_SCRIPT%
echo Set args = Wscript.Arguments                                       >> %DLOAD_SCRIPT%
echo Set http = CreateObject("WinHttp.WinHttpRequest.5.1")              >> %DLOAD_SCRIPT%
echo url = args(0)                                                      >> %DLOAD_SCRIPT%
echo target = args(1)                                                   >> %DLOAD_SCRIPT%
echo WScript.Echo "Getting '" ^& target ^& "' from '" ^& url ^& "'..."  >> %DLOAD_SCRIPT%
echo.                                                                   >> %DLOAD_SCRIPT%
echo http.Open "GET", url, False                                        >> %DLOAD_SCRIPT%
echo http.Send                                                          >> %DLOAD_SCRIPT%
echo status = http.Status                                               >> %DLOAD_SCRIPT%
echo.                                                                   >> %DLOAD_SCRIPT%
echo If status ^<^> 200 Then                                            >> %DLOAD_SCRIPT%
echo    WScript.Echo "FAILED to download: HTTP Status " ^& status       >> %DLOAD_SCRIPT%
echo    WScript.Quit 1                                                  >> %DLOAD_SCRIPT%
echo End If                                                             >> %DLOAD_SCRIPT%
echo.                                                                   >> %DLOAD_SCRIPT%
echo Set adoStream = CreateObject("ADODB.Stream")                       >> %DLOAD_SCRIPT%
echo adoStream.Open                                                     >> %DLOAD_SCRIPT%
echo adoStream.Type = 1                                                 >> %DLOAD_SCRIPT%
echo adoStream.Write http.ResponseBody                                  >> %DLOAD_SCRIPT%
echo adoStream.Position = 0                                             >> %DLOAD_SCRIPT%
echo.                                                                   >> %DLOAD_SCRIPT%
echo Set fileSystem = CreateObject("Scripting.FileSystemObject")        >> %DLOAD_SCRIPT%
echo If fileSystem.FileExists(target) Then fileSystem.DeleteFile target >> %DLOAD_SCRIPT%
echo adoStream.SaveToFile target                                        >> %DLOAD_SCRIPT%
echo adoStream.Close                                                    >> %DLOAD_SCRIPT%
echo.                                                                   >> %DLOAD_SCRIPT%
rem -------------------------------------------------------------------------

cscript //Nologo %DLOAD_SCRIPT% http://example.com targetPathAndFile.html

Więcej wyjaśnień tutaj


Czy jest jakiś powód, aby nie robić tego w osobnym pliku i po prostu wywołać plik VBScript z partii? To będzie straszny bałagan, jeśli kiedykolwiek będziesz musiał go edytować.
seadoggie01

4
  1. Pobierz Wget stąd http://downloads.sourceforge.net/gnuwin32/wget-1.11.4-1-setup.exe

  2. Następnie zainstaluj.

  3. Następnie zrób jakiś plik .bat i umieść go w nim

    @echo off
    
    for /F "tokens=2,3,4 delims=/ " %%i in ('date/t') do set y=%%k
    for /F "tokens=2,3,4 delims=/ " %%i in ('date/t') do set d=%%k%%i%%j
    for /F "tokens=5-8 delims=:. " %%i in ('echo.^| time ^| find "current" ') do set t=%%i%%j
    set t=%t%_
    if "%t:~3,1%"=="_" set t=0%t%
    set t=%t:~0,4%
    set "theFilename=%d%%t%"
    echo %theFilename%
    
    
    cd "C:\Program Files\GnuWin32\bin"
    wget.exe --output-document C:\backup\file_%theFilename%.zip http://someurl/file.zip
    
  4. Dostosuj adres URL i ścieżkę do pliku w skrypcie

  5. Uruchom plik i zyskaj!


3

Jeśli bitsadmin nie jest twoją filiżanką herbaty, możesz użyć tego polecenia PowerShell:

Start-BitsTransfer -Source http://www.foo.com/package.zip -Destination C:\somedir\package.zip

Chcę pobrać plik .exe i również użyłem tego kodu i nie zadziałało. Czy mogę pobrać plik .exe za pomocą skryptu wsadowego?
MAS. Jana

3

Użyj konwertera Bat To Exe

Utwórz plik wsadowy i umieść w nim coś podobnego do poniższego kodu

%extd% /download http://www.examplesite.com/file.zip file.zip

lub

%extd% /download http://stackoverflow.com/questions/4619088/windows-batch-file-file-download-from-a-url thistopic.html

i przekonwertuj go na exe.


3

Zamiast wget możesz również użyć aria2, aby pobrać plik z określonego adresu URL.

Zobacz poniższy link, który wyjaśni więcej o aria2:

https://aria2.github.io/


+1 za wspomnienie o tym narzędziu, którego jeszcze nie znałem. szkoda, że ​​ma problemy z HTTPS, takie jak wget (nie znalazłem jeszcze sposobu na skonfigurowanie łańcucha CA)
Jeroen Wiert Pluimers

2

BATCH może nie być w stanie tego zrobić, ale możesz użyć JScript lub VBScript, jeśli nie chcesz używać narzędzi, które nie są instalowane domyślnie w systemie Windows.

Pierwszy przykład na tej stronie pobiera plik binarny w VBScript: http://www.robvanderwoude.com/vbstech_internet_download.php

Ta odpowiedź SO pobiera plik przy użyciu języka JScript (IMO, lepszy język): Host skryptów systemu Windows (jscript): jak pobrać plik binarny?

Twój skrypt wsadowy może wtedy po prostu wywołać JScript lub VBScript, który pobiera plik.


2

To powinno zadziałać. Wykonałem następujące czynności dla projektu serwera gry. Pobierze plik zip i wyodrębni go do dowolnego wskazanego katalogu.

Zapisz jako name.bat lub name.cmd

@echo off
set downloadurl=http://media.steampowered.com/installer/steamcmd.zip
set downloadpath=C:\steamcmd\steamcmd.zip
set directory=C:\steamcmd\
%WINDIR%\System32\WindowsPowerShell\v1.0\powershell.exe -Command "& {Import-Module BitsTransfer;Start-BitsTransfer '%downloadurl%' '%downloadpath%';$shell = new-object -com shell.application;$zip = $shell.NameSpace('%downloadpath%');foreach($item in $zip.items()){$shell.Namespace('%directory%').copyhere($item);};remove-item '%downloadpath%';}"
echo download complete and extracted to the directory.
pause

Oryginał: https://github.com/C0nw0nk/SteamCMD-AutoUpdate-Any-Gameserver/blob/master/steam.cmd


Chcę pobrać plik .exe i użyłem tego kodu i nie zadziałało. Czy mogę pobrać plik .exe za pomocą skryptu wsadowego?
MAS. Jana

1

Znalazłem ten skrypt VB:

http://www.olafrv.com/?p=385

Działa jak marzenie. Skonfigurowany jako funkcja z bardzo prostym wywołaniem funkcji:

SaveWebBinary "http://server/file1.ext1", "C:/file2.ext2"

Pochodzi z: http://www.ericphelps.com/scripting/samples/BinaryDownload/index.htm

Oto pełny kod nadmiarowości:

Function SaveWebBinary(strUrl, strFile) 'As Boolean
Const adTypeBinary = 1
Const adSaveCreateOverWrite = 2
Const ForWriting = 2
Dim web, varByteArray, strData, strBuffer, lngCounter, ado
    On Error Resume Next
    'Download the file with any available object
    Err.Clear
    Set web = Nothing
    Set web = CreateObject("WinHttp.WinHttpRequest.5.1")
    If web Is Nothing Then Set web = CreateObject("WinHttp.WinHttpRequest")
    If web Is Nothing Then Set web = CreateObject("MSXML2.ServerXMLHTTP")
    If web Is Nothing Then Set web = CreateObject("Microsoft.XMLHTTP")
    web.Open "GET", strURL, False
    web.Send
    If Err.Number <> 0 Then
        SaveWebBinary = False
        Set web = Nothing
        Exit Function
    End If
    If web.Status <> "200" Then
        SaveWebBinary = False
        Set web = Nothing
        Exit Function
    End If
    varByteArray = web.ResponseBody
    Set web = Nothing
    'Now save the file with any available method
    On Error Resume Next
    Set ado = Nothing
    Set ado = CreateObject("ADODB.Stream")
    If ado Is Nothing Then
        Set fs = CreateObject("Scripting.FileSystemObject")
        Set ts = fs.OpenTextFile(strFile, ForWriting, True)
        strData = ""
        strBuffer = ""
        For lngCounter = 0 to UBound(varByteArray)
            ts.Write Chr(255 And Ascb(Midb(varByteArray,lngCounter + 1, 1)))
        Next
        ts.Close
    Else
        ado.Type = adTypeBinary
        ado.Open
        ado.Write varByteArray
        ado.SaveToFile strFile, adSaveCreateOverWrite
        ado.Close
    End If
    SaveWebBinary = True
End Function

1

To pytanie ma bardzo dobrą odpowiedź w tutaj . Mój kod jest oparty wyłącznie na tej odpowiedzi z pewnymi modyfikacjami.

Zapisz poniższy fragment kodu jako wget.bat i umieść go w ścieżce systemowej (np. Umieść go w katalogu i dodaj ten katalog do ścieżki systemowej).

Możesz go użyć w swoim CLI w następujący sposób:

wget url/to/file [?custom_name]

gdzie url_to_filejest obowiązkowe i custom_nameopcjonalne

  1. Jeśli nazwa nie zostanie podana, to pobrany plik zostanie zapisany pod własną nazwą z adresu URL.
  2. Jeśli podano nazwę, plik zostanie zapisany pod nową nazwą.

Adres URL pliku i zapisane nazwy plików są wyświetlane w kolorze ansi. Jeśli to sprawia Ci problem, sprawdź ten projekt na githubie.

@echo OFF
setLocal EnableDelayedExpansion
set Url=%1
set Url=!Url:http://=!
set Url=!Url:/=,!
set Url=!Url:%%20=?!
set Url=!Url: =?!

call :LOOP !Url!

set FileName=%2
if "%2"=="" set FileName=!FN!

echo.
echo.Downloading: [1;33m%1[0m to [1;33m\!FileName![0m

powershell.exe -Command wget %1 -OutFile !FileName!

goto :EOF
:LOOP
if "%1"=="" goto :EOF
set FN=%1
set FN=!FN:?= !
shift
goto :LOOP

PS Ten kod wymaga zainstalowania programu PowerShell.


1

Możesz ustawić zaplanowane zadanie za pomocą wget, użyj pola „Uruchom” w zaplanowanym zadaniu jako:

C:\wget\wget.exe -q -O nul "http://www.google.com/shedule.me"

1

W systemie Windows istnieje narzędzie (rezydujące z CMD), które można uruchomić z CMD (jeśli masz uprawnienia do zapisu):

set url=https://www.nsa.org/content/hl-images/2017/02/09/NSA.jpg
set file=file.jpg
certutil -urlcache -split -f %url% %file%
echo Done.

Wbudowana aplikacja Windows. Nie ma potrzeby pobierania zewnętrznych plików.

Testowane na Win 10


-3

użyj ftp:

(ftp *yourewebsite.com*-a)
cd *directory*
get *filename.doc*
close

Zmień wszystko w gwiazdkach, aby pasowało do Twojej sytuacji.


Z pewnością zależny od serwera hostującego plik do obsługi protokołu FTP.
PnP,

Questin jest powiązany z http, a nie z ftp
Ben
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.