취소

커뮤니티

가이드

서포트

전체

bitsadmin는 권한때문에 다운로드가 안되고<p>Powershell은 어떨때는 되다가 어떨때는 강제중지가 되고</p>

그래도 최소한 wget for windows는 배치파일 내에서 다운로드를 하기 위해서 몇일동안 찾아본 결과 에러가 잘 나지 않게 스크립트를 찾아서 짜 보았다.

원문은 이쪽이다. http://blog.netnerds.net/2007/01/vbscript-download-and-save-a-binary-file/

필자의 경우 배치파일에서 이렇게 사용하였다.

#

ECHO   - "7-Zip Precompiled Binaries"를 다운로드하는 중...

>"%temp%\download_7za.vbs" echo ' Set your settings

>>"%temp%\download_7za.vbs" echo     strFileURL = "https://github.com/develar/7zip-bin/raw/master/win/%ARCHITECTURE_7za%/7za.exe"

>>"%temp%\download_7za.vbs" echo     strHDLocation = "%cd%\tools\7za.exe"

>>"%temp%\download_7za.vbs" echo.

>>"%temp%\download_7za.vbs" echo ' Fetch the file

>>"%temp%\download_7za.vbs" echo     Set objXMLHTTP = CreateObject^("MSXML2.XMLHTTP"^)

>>"%temp%\download_7za.vbs" echo.

>>"%temp%\download_7za.vbs" echo     objXMLHTTP.open "GET", strFileURL, false

>>"%temp%\download_7za.vbs" echo     objXMLHTTP.send^(^)

>>"%temp%\download_7za.vbs" echo.

>>"%temp%\download_7za.vbs" echo If objXMLHTTP.Status = 200 Then

>>"%temp%\download_7za.vbs" echo Set objADOStream = CreateObject^("ADODB.Stream"^)

>>"%temp%\download_7za.vbs" echo objADOStream.Open

>>"%temp%\download_7za.vbs" echo objADOStream.Type = 1 'adTypeBinary

>>"%temp%\download_7za.vbs" echo.

>>"%temp%\download_7za.vbs" echo objADOStream.Write objXMLHTTP.ResponseBody

>>"%temp%\download_7za.vbs" echo objADOStream.Position = 0    'Set the stream position to the start

>>"%temp%\download_7za.vbs" echo.

>>"%temp%\download_7za.vbs" echo Set objFSO = Createobject^("Scripting.FileSystemObject"^)

>>"%temp%\download_7za.vbs" echo If objFSO.Fileexists^(strHDLocation^) Then objFSO.DeleteFile strHDLocation

>>"%temp%\download_7za.vbs" echo Set objFSO = Nothing

>>"%temp%\download_7za.vbs" echo.

>>"%temp%\download_7za.vbs" echo objADOStream.SaveToFile strHDLocation

>>"%temp%\download_7za.vbs" echo objADOStream.Close

>>"%temp%\download_7za.vbs" echo Set objADOStream = Nothing

>>"%temp%\download_7za.vbs" echo End if

>>"%temp%\download_7za.vbs" echo.

>>"%temp%\download_7za.vbs" echo Set objXMLHTTP = Nothing

cscript /nologo "%temp%\download_7za.vbs"

del "%temp%\download_7za.vbs"

#

대략적인 구조를 설명하자면

VBS파일을 임시파일에 저장시킨후, 파일이 다운로드 되면 VBS파일을 삭제하는 방식이다.

여기서 세번째줄인

strFileURL = "https://github.com/develar/7zip-bin/raw/master/win/%ARCHITECTURE_7za%/7za.exe"

에서 https://git...에 다운로드할 주소를,

네번째 줄인

strHDLocation = "%cd%\tools\7za.exe"

에서 %....를 저장할 위치를 넣으면 된다.

"를 끝부분에 다는것을 까먹지 말자.

필자는 두 파일을 다운로드를 하기 위해서 이 스크립트를 두번 만들고 두번 삭제하는데

vbs에 옵션을 넣는(download.vbs "파일주소" "저장주소") VBS를 만드는 방식이였으면 더 편하지 않았을까 싶다.

그렇게 만들고는 싶다만 어떻게 만들어야 할지는 모르겠다.