인터넷으로부터 파일을 내려받습니다.
UrlDownloadToFile, URL, Filename
내려 받을 파일의 URL. 예를 들어, "https://someorg.org"는 그 회사의 환영 페이지를 열람합니다.
파일에 내려받기: 지역적으로 생성될 파일의 이름을 지정합니다. 절대 경로가 지정되지 않으면 %A_WorkingDir%에 있다고 간주됩니다. 기존의 파일은 이 새 파일로 덮어쓰기 됩니다.
변수에 내려받기: 아래의 예제를 참조하십시오.
[v1.1.04+]: 이 명령어는 실패하면 예외를 던질 수 있습니다. 더 자세한 정보는 실행시간 에러를 참조하십시오.
ErrorLevel은 문제가 있으면 1, 그렇지 않으면 0이 설정됩니다.
원격 파일이 존재하지 않더라도 내려받기는 마치 성공한 것처럼 보일 수 있습니다. 많은 웹 서버가 실패한 파일 대신에 에러 페이지를 보내기 때문입니다. 이 에러 페이지가 Filename 대신에 저장될 것입니다.
Internet Explorer 3 이상은 설치해야 이 기능이 작동합니다. 방화벽이나 여러 네트워크 어댑터 때문에 이 기능이 작동하지 않을 수 있습니다. 또, 어떤 웹 사이트는 이런 식의 내려받기를 금지하기도 합니다.
Caching:
*0 https://someorg.org
. 0 다음에 별표가 오면 유효한 dwFlag 번호로 교체됩니다. 자세한 것은 www.microsoft.com에서 InternetOpenUrl을 검색해 보십시오.https://www.someorg.org/doc.html?fakeParam=42
. 주의: 같은 파일을 자주 내려받는다면, 질의 문자열은 반드시 다르게 해야 합니다.Proxies: 마이크로소프트 인터넷 익스플로러의 설정에 프록시를 사용하도록 구성되어 있다면 UrlDownloadToFile은 프록시 서버를 사용하여 인터넷에 접근합니다.
FTP 그리고 Gopher: [v1.0.48.04+]는 FTP와 Gopher URL을 지원합니다. 예를 들어:
UrlDownloadToFile, ftp://example.com/home/My File.zip, C:\My Folder\My File.zip ; 익명으로 로그인 합니다. UrlDownloadToFile, ftp://user:pass@example.com:21/home/My File.zip, C:\My Folder\My File.zip ; 특정 사용자로 로그인 합니다. UrlDownloadToFile, ftp://user:pass@example.com/My Directory, C:\Dir Listing.html ; 디렉토리 리스트를 HTML 형식으로 얻습니다.
UrlDownloadToFile, https://www.autohotkey.com/download/1.1/version.txt, C:\AutoHotkey Latest Version.txt
whr := ComObjCreate("WinHttp.WinHttpRequest.5.1") whr.Open("GET", "https://www.autohotkey.com/download/1.1/version.txt", true) whr.Send() ; 위의 'true'를 사용하고 아래의 호출을 사용하여 스크립트에 반응하도록 만듭니다. whr.WaitForResponse() version := whr.ResponseText MsgBox % version
req := ComObjCreate("Msxml2.XMLHTTP")
; async를 켜고 요청을 엽니다.
req.open("GET", "https://www.autohotkey.com/download/1.1/version.txt", true)
; Set our callback function [requires v1.1.17+].
req.onreadystatechange := Func("Ready")
; 요청을 전송합니다. 완료되면 Ready()가 호출됩니다.
req.send()
/*
; 기다릴 생각이라면 onreadystatechange는 필요가 없습니다.
; async=true로 설정하고 기다리면 내려받기가 되는 동안에도
; 스크립트가 여전히 반응할 수 있습니다.
; 반면에 async=false로 설정하면 스크립트는 반응하지 않습니다.
while req.readyState != 4
sleep 100
*/
#Persistent
Ready() {
global req
if (req.readyState != 4) ; Not done yet.
return
if (req.status == 200) ; OK.
MsgBox % "Latest AutoHotkey version: " req.responseText
else
MsgBox 16,, % "Status " req.status
ExitApp
}