Wie kann ich etwas direkt aus dem Internet herunterladen, ohne dass der Internet Explorer oder Firefox den Acrobat Reader / Quicktime / MS Word öffnet?
Ich benutze Windows, also eine Windows-Version von Wget würdest du.
Wie kann ich etwas direkt aus dem Internet herunterladen, ohne dass der Internet Explorer oder Firefox den Acrobat Reader / Quicktime / MS Word öffnet?
Ich benutze Windows, also eine Windows-Version von Wget würdest du.
Wget für Windows sollte arbeiten.
Von dem Wget Wiki FAQ:
GNU Wget ist ein kostenloses Netzwerk-Dienstprogramm zum Abrufen von Dateien aus der Welt Wide Web mit HTTP und FTP, die beiden am weitesten verbreiteten Internet Protokolle. Es funktioniert nicht-interaktiv und ermöglicht so die Arbeit in der Hintergrund, nach dem Abmelden.
Von Dieser Abschnitt der FAQDownload-Links werden empfohlen:
Windows-Binärdateien
Mit freundlicher Genehmigung von Jernej Simončič: http://eternaldbored.org/misc/wget/
aus sourceforge: http://gnuwin32.sourceforge.net/packages/wget.htm
[...]
Link mit freundlicher Genehmigung von Jernej Simončič wird stattdessen verwendet.
Eine Alternative, die ich kürzlich mit PowerShell entdeckt habe:
$client = new-object System.Net.WebClient
$client.DownloadFile("http://www.xyz.net/file.txt","C:\tmp\file.txt")
Es funktioniert auch mit GET-Abfragen.
Wenn Sie Anmeldeinformationen zum Herunterladen der Datei angeben müssen, fügen Sie die folgende Zeile hinzu:
$client.Credentials = Get-Credential
Eine Eingabeaufforderung für Windows-Standardanmeldeinformationen wird angezeigt. Die Anmeldeinformationen, die Sie dort eingeben, werden zum Herunterladen der Datei verwendet. Sie müssen dies nur ein einziges Mal tun, während Sie das $ client-Objekt verwenden.
Wenn Sie PowerShell> = 3.0 haben, können Sie verwenden Invoke-WebRequest
Invoke-WebRequest -OutFile index.html http://superuser.com
Oder golfte
iwr -outf index.html http://superuser.com
Windows hat sein eigenes Befehlszeilen-Download-Dienstprogramm - BITSAdmin:
BITSAdmin ist ein Befehlszeilentool, mit dem Sie Downloads erstellen können oder laden Sie Jobs hoch und überwachen Sie deren Fortschritt.
BEARBEITEN: 26.01.15 - Hier ist mein Überblick darüber, wie eine Datei unter Windows ohne externe Tools heruntergeladen werden kann
Und ein komplettes bitsadmin Beispiel:
bitsadmin /transfer myDownloadJob /download /priority normal http://downloadsrv/10mb.zip c:\10mb.zip
Bearbeiten : 15.05.2018 - stellte sich heraus, dass es möglich ist, ein Datei mit Certutil auch:
certutil.exe -urlcache -split -f "https://download.sysinternals.com/files/PSTools.zip" pstools.zip
Certutil wird nicht standardmäßig auf XP / Win2003 installiert, ist aber auf den neueren Windows Versionen verfügbar. Für XP / 2003 benötigen Sie die Admin Tool Pack für Windows Server 2003
Speichern Sie den folgenden Text als wget.js
und einfach anrufen
cscript /nologo wget.js http://example.com
Dies ist der Code:
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");
*/
Ich habe eine schnelle myGet.bat-Datei erstellt, die die oben beschriebene PowerShell-Methode aufruft.
@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
Ich habe mir etwas Code ausgeliehen Parsing URL für den Dateinamen mit Leerzeichen.
Es gibt eine native cURL für Windows verfügbar Hier. Es gibt viele verschiedene Varianten - mit und ohne SSL-Unterstützung.
Sie brauchen das zusätzliche Gepäck nicht Cygwin und die Likes, nur eine kleine EXE-Datei.
Es ist auch wichtig zu wissen, dass es beides gibt wget
und curl
Aliase, die in allen modernen Versionen von Windows PowerShell integriert sind. Sie sind gleichwertig.
Es sind keine zusätzlichen Dateien oder Downloads erforderlich wget
Funktionalität:
Verwenden von Curl in Powershell (Der gesellige Geek)
Auszug:
Sie können einen cURL-Befehl wie einen eingeben, der eine Datei von einem herunterlädt GitHub-Repository.
und es wird so aussehen, als ob es funktioniert, aber was es gerade macht, ist einfach Verwenden von CURL als Alias In dem obigen Fall wird was passieren wird dass Sie nur die Header anstelle der Datei selbst erhalten.
Aliase in PowerShell ermöglichen es Ihnen, Verknüpfungen für längere Befehle zu erstellen, sodass Sie sie nicht ständig eingeben müssen.
Wenn Sie den Befehl Get-Alias eingeben, erhalten Sie eine Liste aller Aliasnamen, die in PowerShell verwendet werden. Wie Sie sehen können, ruft der Befehl curl den Invoke-WebRequest Befehl auf. Sie sind ähnlich, aber nicht das Gleiche, weshalb die obige Anfrage für uns nicht funktioniert.
Um dies in PowerShell richtig zu machen, verwenden Sie am einfachsten Variablen und die -OutFile
Argument wie hier gezeigt:
(Dateiname abgeschnitten im Bild "https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/mongodb-on-ubuntu/azuredeploy.json")
Diese Syntax lädt den gesamten Inhalt der Zieldatei herunter azuredeploy.json
zu der lokalen Datei newfile.json
Der Hauptvorteil besteht darin, dass es in Powershell selbst integriert ist, so dass dieser Code direkt ohne Downloads ausgeführt werden kann oder andere zusätzliche Dateierstellungen erforderlich sind, damit er in jeder modernen Version von Windows funktioniert.
Ich war auf der Suche nach dem gleichen, und da ich kein Privileg hatte, eines der obigen Pakete zu installieren, entschied ich mich für eine kleine Problemumgehung (um 30 + Dateien herunterzuladen):
firefox.exe
am Anfang jeder ZeileProgram Files