'################################################################################ '## '## Licensed to the Apache Software Foundation (ASF) under one or more '## contributor license agreements. See the NOTICE file distributed with '## this work for additional information regarding copyright ownership. '## The ASF licenses this file to You under the Apache License, Version 2.0 '## (the "License"); you may not use this file except in compliance with '## the License. You may obtain a copy of the License at '## '## http://www.apache.org/licenses/LICENSE-2.0 '## '## Unless required by applicable law or agreed to in writing, software '## distributed under the License is distributed on an "AS IS" BASIS, '## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. '## See the License for the specific language governing permissions and '## limitations under the License. '## '################################################################################ ' Note: this script could be improved with the addition of error handling ' Download and optionally unzip a binary. ' ' arg1 is the URL of the binary to download ' arg2 is the local path for the binary file ' [arg3] if specified, is the target dir to unzip arg2 DownloadBinary WScript.Arguments(0), WScript.Arguments(1) If WScript.Arguments.Count = 3 Then Unzip WScript.Arguments(1), WScript.Arguments(2) End If ' ' Windows doesn't have a builtin HTTP GET. ' HTTP Get the URL specified with sBinURL to the local file specified by sBinFilePath ' Function DownloadBinary(sBinURL, sBinFilePath) ' Fetch the file Set objXMLHTTP = CreateObject("MSXML2.XMLHTTP") objXMLHTTP.open "GET", sBinURL, false objXMLHTTP.send() 'wait until the data has downloaded successfully do until objXMLHTTP.Status = 200 : wcript.sleep(1000) : loop If objXMLHTTP.Status = 200 Then Set objStream = CreateObject("ADODB.Stream") objStream.Open ' Type is binary. objStream.Type = 1 objStream.Write objXMLHTTP.ResponseBody objStream.Position = 0 ' 2: Overwrite the binary if it already exists. objStream.savetofile sBinFilePath, 2 objStream.Close Set objStream = Nothing End if Set objXMLHTTP = Nothing End Function ' ' Windows doesn't have a built in unzip command so unzip a zip file with vbScript. ' sZipFilePath is the absolute path to the zip file ' sDestinationDir is the existing target directory ' Function Unzip(sZipFilePath, sDestinationDir) Dim objshell ' Create Shell.Application so we can use the CopyHere method Set objshell = CreateObject("Shell.Application") ' Use CopyHere to extract files ' Note the options do not work on Windows XP when manipulating a zip file. ' 4: Do not display a progress dialog box. ' 16: Click "Yes to All" in any dialog box that is displayed. objshell.NameSpace(sDestinationDir).CopyHere objshell.NameSpace(sZipFilePath).Items, 16 Set objshell = Nothing End Function