2009-08-19 11:40:48 +0000 2009-08-19 11:40:48 +0000
372
372

Jak pobrać pliki z linii poleceń w systemie Windows jak wget lub curl

Jak mogę pobrać coś bezpośrednio z sieci bez Internet Explorer lub Firefox otwierający Acrobat Reader/Quicktime/MS Word/co?

Używam systemu Windows, więc wersja Wget dla Windows by to zrobiła.

Odpowiedzi (19)

323
323
323
2011-09-01 13:25:11 +0000

Alternatywa, którą odkryłem ostatnio, używając PowerShell:

$client = new-object System.Net.WebClient
$client.DownloadFile("http://www.xyz.net/file.txt","C:\tmp\file.txt")

Działa ona również z zapytaniami GET.

Jeśli potrzebujesz określić dane uwierzytelniające do pobrania pliku, dodaj następujący wiersz pomiędzy:

$client.Credentials = Get-Credential

Pojawi się standardowy monit o dane uwierzytelniające okna. Wprowadzone tam dane zostaną wykorzystane do pobrania pliku. Musisz to zrobić tylko raz, przez cały czas, gdy będziesz używał obiektu $client.

187
187
187
2009-08-19 11:45:59 +0000

Wget dla Windows powinien działać.

Z Wget Wiki FAQ :

GNU Wget jest darmowym narzędziem sieciowym do pobierania plików z sieci World Wide Web przy użyciu HTTP i FTP, dwóch najczęściej używanych protokołów internetowych. Działa on nieinteraktywnie, umożliwiając pracę w tle, po wylogowaniu.

Z tej sekcji FAQ , sugerowane są linki do pobrania:

Windows Binaries

Zamiast tego użyto linku z uprzejmością Jerneya Simončiča.

95
95
95
2014-05-17 19:15:46 +0000

Jeśli masz PowerShell >= 3.0, możesz nas Invoke-WebRequest

Invoke-WebRequest -OutFile index.html http://superuser.com

lub golfa

iwr -outf index.html http://superuser.com

Download a file via HTTP in Windows

64
64
64
2011-12-30 17:40:02 +0000

Windows posiada własne narzędzie do pobierania z wiersza poleceń - BITSAdmin :

BITSAdmin jest narzędziem z wiersza poleceń, które można wykorzystać do tworzenia zadań do pobrania lub przesłania i monitorowania ich postępu.

EDIT : 26.01.15 - Oto mój przegląd jak można pobrać plik na Windows bez zewnętrznych narzędzi

I kompletny przykład bitadminu:

bitsadmin /transfer myDownloadJob /download /priority normal http://downloadsrv/10mb.zip c:0mb.zip

Edit : 15.05.2018 - okazało się, że można pobrać plik z certutil too :

certutil.exe -urlcache -split -f "https://download.sysinternals.com/files/PSTools.zip" pstools.zip

Certutil nie jest domyślnie zainstalowany na XP/Win2003, ale jest dostępny w nowszych wersjach Windows.Do XP/2003 potrzebny jest Admin Tool Pack dla windows server 2003

33
33
33
2013-01-15 07:03:23 +0000

Zapisz następujący tekst jako wget.js i po prostu zadzwoń

cscript /nologo wget.js http://example.com

To jest kod:

var WinHttpReq = new ActiveXObject("WinHttp.WinHttpRequest.5.1");
WinHttpReq.Open("GET", WScript.Arguments(0), /*async=*/false);
WinHttpReq.Send();
WScript.Echo(WinHttpReq.ResponseText);

/* To save a binary file use this code instead of previous line
BinStream = new ActiveXObject("ADODB.Stream");
BinStream.Type = 1;
BinStream.Open();
BinStream.Write(WinHttpReq.ResponseBody);
BinStream.SaveToFile("out.bin");
*/
22
22
22
2013-03-02 13:30:36 +0000

Zrobiłem szybki plik myGet.bat, który nazywa metodę PowerShell opisaną powyżej.

@Echo OFF
SetLocal EnableDelayedExpansion
Set Var=%1
Set Var=!Var:http://=!
Set Var=!Var:/=,!
Set Var=!Var:%%20=?!
Set Var=!Var: =?!
Call :LOOP !var!
Echo.Downloading: %1 to %~p0!FN!
powershell.exe -Command (new-object System.Net.WebClient).DownloadFile('%1','%~p0!FN!')
GoTo :EOF
:LOOP
If "%1"=="" GoTo :EOF
Set FN=%1
Set FN=!FN:?= !
Shift
GoTo :LOOP

Pożyczyłem trochę kodu z Parsing URL dla pliku ze spacją _.

22
22
22
2012-10-27 14:16:23 +0000

Istnieje native cURL dla Windows dostępny tutaj . Dostępnych jest wiele smaków - z obsługą SSL i bez niej.

Nie potrzebujesz dodatkowego bagażu Cygwin i tym podobnych, tylko jeden mały plik EXE.

  • *

Do wszystkich nowoczesnych wersji Windows Powershell wbudowane są aliasy wget i curl. Są one równoważne.

Do uzyskania funkcji wget nie są wymagane żadne dodatkowe pliki ani pliki do pobrania: Użycie Curl In Powershell (The Sociable Geek)

Fragment:

Możesz wpisać polecenie cURL, takie jak to, które pobiera plik z repozytorium GitHub.

curl http://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/mongodb-on-ubuntu/azuredeploy.json

i będzie wyglądało na to, że to działa, ale to, co faktycznie robi, to po prostu użycie cURL'a jako aliasu. W powyższym przykładzie, to co się stanie to to, że zamiast samego pliku dostaniesz po prostu nagłówki.

Aliases w PowerShell pozwala na tworzenie skrótów do dłuższych poleceń, więc nie musisz ich cały czas wpisywać.

Jeśli wpiszesz polecenie Get-Alias, da Ci ono listę wszystkich Aliasów, które są używane w PowerShell. Jak widzisz, polecenie curl wywołuje po prostu polecenie Invoke-WebRequest. Są one podobne, ale nie takie same, dlatego powyższe żądanie nie działa dla nas.

Aby to poprawnie działało w PowerShell'u najłatwiej jest użyć zmiennych i argumentu -OutFile jak pokazano tutaj:

(nazwa pliku ucięta na obrazku https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/mongodb-on-ubuntu/azuredeploy. json “)

Ta składnia pobierze pełną zawartość pliku docelowego azuredeploy.json do pliku lokalnego newfile.json

  • *

Pierwszą zaletą jest to, że jest on wbudowany w samego Powershella, więc kod ten zostanie wykonany bezpośrednio bez pobierania lub innych dodatkowych kreacji plików, które są wymagane, aby działał na dowolnej nowoczesnej wersji Windows.

8
8
8
2013-04-09 08:13:58 +0000

Szukałem tego samego, a ponieważ nie miałem uprawnień do zainstalowania żadnego z powyższych pakietów, poszedłem na małe obejście (do pobrania 30+plików):

  • Stworzyłem plik wsadowy
  • Lista wszystkich plików
  • Umieść firefox.exe na początku każdej linii
  • Poszedłem do katalogu Firefox w Program Files
  • Ran it.
4
4
4
2017-02-01 14:06:11 +0000

Możesz również użyć wget pakowanego w PowerShell . ;^) Aby otworzyć, wciśnij klawisz Windows i wpisz “powershell” lub Windows-R i wpisz “powershell” i wciśnij return.

Nie ma potrzeby instalacji.

Ciekawa różnica w stosunku do konwencjonalnego wget (więcej w ten link ): wget w PowerShell jest tylko wygodnym opakowaniem dla Invoke-WebRequest, a do zapisu do pliku trzeba użyć jego składni.

wget https://superuser.com/questions/25538 -OutFile rubySlippers.html
4
4
4
2012-10-22 05:48:35 +0000

Jeśli PowerShell jest opcją, to jest to preferowana trasa, ponieważ (potencjalnie) nie będziesz musiał instalować niczego dodatkowego:

(new-object System.Net.WebClient).DownloadFile('http://www.xyz.net/file.txt', 'C:\tmp\file.tx??t')

W przeciwnym razie, Wget for Windows, jak zauważyli inni, jest zdecydowanie drugą najlepszą opcją. Jak napisano w innej odpowiedzi wygląda na to, że możesz pobrać Wgeta samodzielnie , lub możesz go pobrać jako część Cygwin lub MSys .

Jeśli z jakiegoś powodu utknąłeś w warstwie czasu, używając maszyny, która nie posiada PowerShell i nie masz zerowego dostępu do działającej przeglądarki internetowej (tzn. Internet Explorer jest jedyną przeglądarką w systemie, a jej ustawienia są uszkodzone), a Twój plik jest na stronie FTP (w przeciwieństwie do HTTP):

start->run "FTP", press "OK".

Jeśli obsługuje pamięć, to jest tam od Windows 98, a ja mogę potwierdzić, że nadal jest tam w Windows 8 RTM (być może trzeba będzie wejść do appwiz.cpl i dodać/usunąć funkcje, aby go uzyskać). To narzędzie może zarówno pobierać jak i przesyłać pliki do/z witryn FTP w sieci. Może być również używane w skryptach do automatyzacji obu operacji.

To wbudowane narzędzie było dla mnie prawdziwym ratunkiem w przeszłości, szczególnie w czasach ftp.cdrom. com – ściągnąłem Firefoksa w ten sposób raz, na całkowicie zepsutej maszynie, która miała tylko połączenie dial-up z Internetem (w czasach, gdy maksymalny rozmiar pakietu sneakernetu wynosił jeszcze 1.44 MB, a Firefox wciąż był nazywany “Netscape” /me does trollface).

Kilka wskazówek: jest to własny procesor komend i ma własną składnię. Spróbuj wpisać “help”. Wszystkie strony FTP wymagają nazwy użytkownika i hasła; ale jeśli pozwalają na “anonimowych” użytkowników, nazwa użytkownika jest “anonimowa”, a hasło to Twój adres e-mail (możesz je wymyślić, jeśli nie chcesz być śledzony, ale zazwyczaj jest jakiś rodzaj logiki, aby upewnić się, że jest to prawidłowy adres e-mail).

3
3
3
2019-06-02 21:52:23 +0000

Wyszukaj funkcję /download na stronie https://lolbas-project.github.io .

Obecnie dostępne są Bitsadmin.exe, Certutil.exe, Esentutl.exe, Expand.exe, Extrac32.exe, Findstr.exe, Hh.exe, Ieexec.exe, Makecab.exe, Replace.exe, &007 dla Windows vista, Windows 7, Windows 8, Windows 8.1, Windows 10 i ich odpowiedników w wersji serwerowej.

3
3
3
2012-02-16 17:10:01 +0000

Cygwin ma Wgeta (i wiele innych mediów).

2
2
2
2009-08-19 11:54:38 +0000

I http://www.httrack.com/ ma ładny GUI (i jest darmowy), do lustrzanych stron. Ma również wersję linuksową.

1
1
1
2009-08-19 11:46:49 +0000

Możesz dostać WGet for Windows tutaj . Alternatywnie możesz kliknąć prawym przyciskiem myszy na link do pobrania elementu, który chcesz pobrać i wybrać opcję Zapisz jako. Spowoduje to pobranie pliku, a nie otwarcie go w przypisanej aplikacji.

1
1
1
2018-06-17 11:29:05 +0000

Myślę, że instalacja wget przez Chocolatey jest najprostszym sposobem.

  1. Instalacja Chocolatey
  2. Z linii poleceń, wpisz: choco install wget
  3. Następnie możesz użyć wget z linii poleceń jak w systemach *nix.
0
0
0
2018-12-05 19:27:48 +0000

Jak udokumentowano w tej odpowiedź SU , w Powershell można użyć następujących informacji:

Import-Module bitstransfer
start-bitstransfer -source http://something/something.ext -destination c:\something.ext
0
0
0
2012-02-16 16:58:17 +0000

Jeśli chcesz mieć GUI, to spróbuj VisualWget , który jest faktycznie czysty i pełny. Jest on oparty na GNU Wget dla jego silnika pobierania.

EDIT: zaktualizowany link.

-1
-1
-1
2011-07-21 16:00:11 +0000

Alternatywą dla używania gnuwin32 jest unxutils , który zawiera wget.

-3
-3
-3
2016-04-12 07:45:52 +0000

Jeśli potrzebujesz visual Post dla Windows, tutaj jest jeden. Możesz umieścić dane lub pliki z nim.