UrlDownloadToFile

Lädt eine Datei aus dem Internet herunter.

UrlDownloadToFile, URL, DateiName

Parameter

URL

URL der Datei, die heruntergeladen werden soll. Zum Beispiel bewirkt https://someorg.org, dass die Willkommensseite dieser Organisation abgerufen wird.

DateiName

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. Eine bereits vorhandene Datei wird mit der neuen Datei überschrieben.

Dieser Befehl lädt eine Datei herunter. Um stattdessen in eine Variable herunterzuladen, siehe das Beispiel 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 könnte auch dann als Erfolg gewertet werden, wenn die Remote-Datei nicht existiert. Der Grund dafür ist, dass viele Webserver anstelle der fehlenden Datei eine Fehlerseite senden. Und genau diese Fehlerseite wird anstelle von DateiName gespeichert.

Es muss Internet Explorer 3 oder höher installiert sein, damit dieser Befehl richtig funktioniert. Firewalls oder das Vorhandensein mehrerer Netzwerkadapter können dazu führen, dass der Befehl fehlschlägt. Zudem ist es möglich, dass einige Webseiten solche Downloads blockieren.

Caching:

Proxies: UrlDownloadToFile verwendet einen Proxy-Server für den Internetzugriff, wenn ein solcher in den Einstellungen des Internet Explorers konfiguriert ist.

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  ; Ruft eine Verzeichnisliste im HTML-Format ab.

FileRead, FileCopy

Beispiele

Lädt eine Textdatei herunter.

UrlDownloadToFile, https://www.autohotkey.com/download/1.1/version.txt, C:\Aktuellste AutoHotkey-Version.txt

Lädt eine ZIP-Datei herunter.

UrlDownloadToFile, https://someorg.org/archive.zip, C:\SomeOrg's Archive.zip

Lädt Text in eine Variable herunter.

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 den Aufruf unten bleibt das Skript responsiv.
whr.WaitForResponse()
version := whr.ResponseText
MsgBox % version

Macht einen asynchronen HTTP-Request.

req := ComObjCreate("Msxml2.XMLHTTP")
; Request mit aktiviertem async öffnen.
req.open("GET", "https://www.autohotkey.com/download/1.1/version.txt", true)
; Unsere Rückruffunktion setzen, benötigt [v1.1.17+].
req.onreadystatechange := Func("Ready")
; Den Request senden.  Ready() wird bei Abschluss aufgerufen.
req.send()
/*
; Wenn Sie warten wollen, brauchen Sie kein onreadystatechange.
; Wenn Sie async=true setzen und auf diese Weise warten, bleibt das Skript
; responsiv, während der Download läuft, wogegen async=false
; das Skript unresponsiv macht.
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
}