UrlDownloadToFile

Lädt eine Datei aus dem Internet herunter.

UrlDownloadToFile, URL, Dateiname

Parameter

URL

URL der Datei, die heruntergeladen werden soll. Zum Beispiel könnte mit "https://someorg.org" die Willkommensseite dieser Organisation abgerufen werden.

Dateiname

Inhalt in eine Datei herunterladen: Geben Sie den Namen der Datei an, die lokal erstellt werden soll. Wenn kein absoluter Pfad angegeben ist, wird die Datei im A_WorkingDir-Verzeichnis vermutet. Jede vorhandene Datei wird mit der neuen Datei überschrieben.

Inhalt in eine Variable herunterladen: Siehe die Beispiele unten..

Fehlerbehandlung

[v1.1.04+]: Dieser Befehl ist in der Lage, bei Misserfolg eine Ausnahme auszulösen. Weitere Informationen finden Sie unter Laufzeitfehler.

ErrorLevel wird bei Misserfolg auf 1 und bei Erfolg auf 0 gesetzt.

Bemerkungen

Der Download wird möglicherweise auch dann als erfolgreich angesehen, wenn die Remote-Datei nicht vorhanden ist. Das liegt daran, dass viele Webserver anstelle der fehlenden Datei eine Fehlerseite senden. Das heißt, dass in Dateiname die Fehlerseite gespeichert wird.

Internet Explorer 3 oder höher muss installiert sein, damit diese Funktion richtig funktionieren kann. Firewalls oder das Vorhandensein mehrerer Netzwerkadapter können dazu führen, dass die Funktion fehlschlägt. Zudem ist es möglich, dass einige Webseiten solche Downloads blockieren.

Caching:

Proxies: UrlDownloadToFile wird einen Proxy-Server für den Internetzugriff verwenden, falls so ein Proxy in den Einstellungen des Internet Explorers konfiguriert wurde.

FTP und Gopher: [v1.0.48.04+] unterstützt FTP- und Gopher-URLs. Zum Beispiel:

UrlDownloadToFile, ftp://example.com/home/Meine Datei.zip, C:\Mein Ordner\Meine Datei.zip  ; Anonym anmelden.
UrlDownloadToFile, ftp://user:pass@example.com:21/home/Meine Datei.zip, C:\Mein Ordner\Meine Datei.zip  ; Als bestimmter Benutzer anmelden.
UrlDownloadToFile, ftp://benutzer:passwort@beispiel.com/Mein Verzeichnis, C:\Verzeichnisliste.html  ; Ermittelt eine Verzeichnisliste im HTML-Format.

Siehe auch

FileRead, FileCopy

Beispiele

#1

UrlDownloadToFile, https://www.autohotkey.com/download/1.1/version.txt, C:\Aktuellste AutoHotkey-Version.txt
UrlDownloadToFile, https://someorg.org/archive.zip, C:\SomeOrg's Archive.zip

#2: Text in eine Variable herunterladen:

whr := ComObjCreate("WinHttp.WinHttpRequest.5.1")
whr.Open("GET", "https://www.autohotkey.com/download/1.1/version.txt", true)
whr.Send()
; Durch das 'true' oben und dem Aufruf unten bleibt das Skript ansprechbar.
whr.WaitForResponse()
version := whr.ResponseText
MsgBox % version

#3: Einen asynchronen HTTP-Request machen.

req := ComObjCreate("Msxml2.XMLHTTP")
; Öffnet einen Request mit aktivierter async.
req.open("GET", "https://www.autohotkey.com/download/1.1/version.txt", true)
; Setzt unsere Callback-Funktion [benötigt v1.1.17+].
req.onreadystatechange := Func("Ready")
; Sendet den Request.  Ready() wird aufgerufen, wenn es fertig ist.
req.send()
/*
; Wenn Sie warten wollen, brauchen Sie kein onreadystatechange.
; Durch Setzen von async=true und Warten auf diese Weise bleibt das Skript
; ansprechbar, während der Download läuft, dagegen macht async=false
; das Skript unansprechbar.
while req.readyState != 4
    sleep 100
*/
#Persistent

Ready() {
    global req
    if (req.readyState != 4)  ; Noch nicht fertig.
        return
    if (req.status == 200) ; OK.
        MsgBox % "Neueste AutoHotkey-Version ist: " req.responseText
    else
        MsgBox 16,, % "Status " req.status
    ExitApp
}