Jak mogę pobrać coś bezpośrednio z Internetu bez otwierania przeglądarki Internet Explorer lub Firefox Acrobat Reader / Quicktime / MS Word / cokolwiek innego?
Korzystam z systemu Windows, więc zrobiłaby to wersja Wget dla systemu Windows .
Jak mogę pobrać coś bezpośrednio z Internetu bez otwierania przeglądarki Internet Explorer lub Firefox Acrobat Reader / Quicktime / MS Word / cokolwiek innego?
Korzystam z systemu Windows, więc zrobiłaby to wersja Wget dla systemu Windows .
Odpowiedzi:
Wget dla Windows powinien działać.
Z FAQ Wget Wiki :
GNU Wget to bezpłatne narzędzie sieciowe do pobierania plików z Internetu za pomocą HTTP i FTP, dwóch najczęściej używanych protokołów internetowych. Działa nieinteraktywnie, umożliwiając pracę w tle po wylogowaniu.
W tej sekcji FAQ sugerowane są linki do pobrania:
Pliki binarne systemu Windows
dzięki uprzejmości Jernej Simončič: http://eternallybored.org/misc/wget/
ze źródła: http://gnuwin32.sourceforge.net/packages/wget.htm
[...]
Zamiast tego zastosowano link z uprzejmością Jernej Simončič.
Alternatywę odkryłem niedawno przy użyciu programu PowerShell:
$client = new-object System.Net.WebClient
$client.DownloadFile("http://www.xyz.net/file.txt","C:\tmp\file.txt")
Działa również z zapytaniami GET.
Jeśli musisz określić poświadczenia, aby pobrać plik, dodaj następujący wiersz między:
$client.Credentials = Get-Credential
Pojawi się standardowy monit o poświadczenia systemu Windows. Poświadczenia, które tam wprowadzisz, zostaną wykorzystane do pobrania pliku. Musisz to zrobić tylko raz, cały czas będziesz używać obiektu klienta $.
(new-object System.Net.WebClient).DownloadFile('http://www.xyz.net/file.txt','C:\tmp\file.txt')
Jeśli masz PowerShell> = 3.0, możesz użyć Invoke-WebRequest
Invoke-WebRequest -OutFile index.html http://superuser.com
Lub grał w golfa
iwr -outf index.html http://superuser.com
System.Net.WebClient
. Możesz jednak Invoke-WebRequest
pracować, dodając -UserAgent [Microsoft.PowerShell.Commands.PSUserAgent]::FireFox
.
wget
lub curl -O
, curl --remote-name
lub curl -J
?)
System Windows ma własne narzędzie do pobierania z wiersza poleceń - BITSAdmin :
BITSAdmin to narzędzie wiersza polecenia, którego można używać do tworzenia zadań pobierania lub wysyłania i monitorowania ich postępu.
EDYCJA : 26.01.15 - Oto mój przegląd tego, jak plik można pobrać na Windows bez zewnętrznych narzędzi
I kompletny przykład bitsadmin:
bitsadmin /transfer myDownloadJob /download /priority normal http://downloadsrv/10mb.zip c:\10mb.zip
Edycja : 15.05.2018 - okazało się, że można pobrać również plik z certutil :
certutil.exe -urlcache -split -f "https://download.sysinternals.com/files/PSTools.zip" pstools.zip
Certutil nie jest instalowany domyślnie na XP / Win2003, ale jest dostępny w nowszych wersjach systemu Windows. Na XP / 2003 potrzebujesz pakietu narzędzi administratora dla systemu Windows Server 2003
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");
*/
Jest rodowitym cURL dla Windows dostępnego tutaj . Dostępnych jest wiele smaków - z obsługą protokołu SSL i bez niego.
Nie potrzebujesz dodatkowego bagażu Cygwin i podobnych, tylko jeden mały plik EXE.
Ważne jest również, aby wiedzieć, że istnieją zarówno wget
i curl
aliasy wbudowanych w nowoczesnych wersjach Windows PowerShell. Są równoważne.
Do uzyskania wget
funkcjonalności nie są wymagane żadne dodatkowe pliki ani pliki do pobrania :
Korzystanie z Curl In Powershell (The Sociable Geek)
Fragment:
Możesz wpisać polecenie cURL, takie jak to, które pobiera plik z repozytorium GitHub.
i wygląda na to, że działa, ale tak naprawdę używa po prostu cURL jako aliasu. W powyższym przypadku to, co się stanie, to po prostu otrzymasz nagłówki zamiast samego pliku.
Aliasy w programie PowerShell pozwalają tworzyć skróty do dłuższych poleceń, dzięki czemu nie trzeba ich cały czas wpisywać.
Jeśli wpiszesz polecenie Get-Alias, wyświetli się lista wszystkich aliasów używanych w PowerShell. Jak widać, polecenie curl po prostu wywołuje polecenie Invoke-WebRequest. Są podobne, ale nie takie same, dlatego powyższe żądanie nie działa dla nas.
Aby to działało poprawnie w PowerShell, najprostszym sposobem jest użycie zmiennych i -OutFile
argumentu, jak pokazano tutaj:
(nazwa pliku odcięta na obrazie „ 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 lokalnegonewfile.json
Podstawową zaletą jest to, że jest on wbudowany w sam Powershell, więc ten kod będzie wykonywany bezpośrednio bez pobierania lub wymagane są dodatkowe kreacje plików, aby działał na dowolnej nowoczesnej wersji systemu Windows.
Zrobiłem szybki plik myGet.bat, który wywołuje opisaną powyżej metodę PowerShell.
@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 na nazwę pliku ze spacją .
powershell.exe -Command "Invoke-WebRequest -OutFile ./file-name https://location/file-name"
<- Proste użycie PowerShell w jednym wierszu w lokalizacji skryptu w twardym kodzie lokalizacji i nazwy pliku.
Szukałem tego samego, a ponieważ nie miałem przywileju zainstalowania żadnego z powyższych pakietów, zdecydowałem się na małe obejście (aby pobrać 30 + plików):
firefox.exe
na początku każdej liniiProgram Files
Jeśli PowerShell jest opcją, 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 dla Windows, jak zauważyli inni, jest zdecydowanie drugą najlepszą opcją. Jak napisano w innej odpowiedzi, wygląda na to, że możesz pobrać Wget samodzielnie lub pobrać go jako część Cygwin lub MSys .
Jeśli z jakiegoś powodu utkniesz w czasie, używając maszyny, która nie ma programu PowerShell i masz zerowy dostęp do działającej przeglądarki internetowej (to znaczy, że Internet Explorer jest jedyną przeglądarką w systemie i jej ustawieniami są uszkodzone), a plik znajduje się na stronie FTP (w przeciwieństwie do HTTP):
start->run "FTP", press "OK".
Jeśli pamięć działa, jest tam od systemu Windows 98 i mogę potwierdzić, że nadal jest ona dostępna w systemie Windows 8 RTM (może być konieczne wejście appwiz.cpl
i dodanie / usunięcie funkcji, aby ją uzyskać). To narzędzie może zarówno pobierać, jak i przesyłać pliki do / z witryn FTP w Internecie. Może być również używany w skryptach do automatyzacji dowolnej operacji.
To narzędzie, które jest wbudowane, było dla mnie prawdziwym narzędziem ratującym życie, szczególnie w czasach ftp.cdrom.com - pobrałem Firefoksa w ten sposób raz, na całkowicie zepsutą maszynę, która miała tylko Internet dial-up połączenie (wstecz, kiedy maksymalny rozmiar pakietu sneakernet wciąż wynosił 1,44 MB, a Firefox wciąż nazywał się „Netscape” / ja robi trollface ).
Kilka wskazówek: jest to własny procesor poleceń i ma własną składnię. Spróbuj wpisać „pomoc”. Wszystkie witryny FTP wymagają nazwy użytkownika i hasła; ale jeśli zezwalają „anonimowym” użytkownikom, 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 zwykle istnieje pewna logika, aby upewnić się, że jest to prawidłowy adres e-mail).
C:\tmp\file.tx??t
Cygwin ma Wget (i wiele innych narzędzi).
A http://www.httrack.com/ ma ładny GUI (i jest bezpłatny), do tworzenia kopii lustrzanych stron. Ma również wersję Linux.
Możesz także użyć wget
pakietu zapakowanego w PowerShell . ; ^) Aby otworzyć, naciśnij klawisz Windows i wpisz „powershell” lub Windows-R i wpisz „powershell” i naciśnij klawisz Return.
Nie wymaga instalacji.
Jedna interesująca różnica w stosunku do konwencjonalnej wget
(więcej pod tym linkiem ): Nie można po prostu użyć polecenia „więcej niż” do potoku do pliku. wget
w PowerShell jest tylko wygodnym opakowaniem Invoke-WebRequest
, a do zapisu do pliku musisz użyć jego składni.
wget https://superuser.com/questions/25538 -OutFile rubySlippers.html
-OutFile
wykonał robotę!
Możesz pobrać WGet dla Windows tutaj . Możesz też kliknąć prawym przyciskiem myszy link do pobrania elementu, który chcesz pobrać, i wybierz opcję Zapisz jako. Spowoduje to pobranie pliku i nie otworzenie go w przypisanej aplikacji.
Myślę, że instalacja wget
za pomocą Chocolatey jest najprostszym sposobem.
choco install wget
wget
z wiersza poleceń, jak w systemach * nix.Wyszukaj /download
funkcję na https://lolbas-project.github.io .
Teraz istnieją Bitsadmin.exe
, Certutil.exe
, Esentutl.exe
, Expand.exe, Extrac32.exe
, Findstr.exe
, Hh.exe
, Ieexec.exe
, Makecab.exe
, Replace.exe
Windows Vista, Windows 7, Windows 8, Windows 8.1, Windows 10 i równoważnych wersjach serwera.
Jeśli chcesz mieć GUI, wypróbuj VisualWget , który jest właściwie czysty i ma pełną funkcjonalność. Opiera się na GNU Wget dla silnika pobierania.
EDYCJA: zaktualizowany link.
Jak udokumentowano w tej odpowiedzi SU , w Powershell można użyć następujących opcji:
Import-Module bitstransfer
start-bitstransfer -source http://something/something.ext -destination c:\something.ext
Jeśli potrzebujesz wizualnego posta dla systemu Windows, oto jeden.
Możesz za jego pomocą publikować dane lub pliki.