REM johnpfeiffer: put this .bat file and wget in %tmp% , NOTE: BAT scripting is case sensitive
REM Ensure you configure the build version to download, 32 or 64 bit, user/pass etc.
ECHO off
SET INSTALLERFILENAME=Installer_865.exe
SET VERSION=64bit
SET URL=http://10.10.10.232:8080/job/win-inception-client-wix/lastSuccessfulBuild/artifact/output/%INSTALLERFILENAME%
SET USER=qa
SET PASSWORD=password
SET SECONDS=20
REM - - - - - - - - - - - - - - - - - - - - - - - - -
REM - - MAIN - - - - - - - - - - - - - - - - - - - -
IF NOT EXIST %tmp%\wget\wget.exe (
ECHO Error: wget.exe does not exist
GOTO :EOF
) ELSE (
CALL :GETINSTALLER
)
REM Run the installer in a new cmd.exe
IF EXIST %tmp%\%INSTALLERFILENAME% (
start %tmp%\%INSTALLERFILENAME%
)
ECHO "Waiting %SECONDS% seconds for Installer.exe to extract tmporary files"
PING -n %SECONDS% 127.0.0.1 > null
ECHO %VERSION%
IF "%VERSION%" == "64bit" (
CALL :GETMSIFILENAME64
ECHO %MSIFILENAME%
) ELSE (
REM 32bit is the first item in the list
FOR /F "tokens=* delims=\ " %%X IN ('dir /b /s %tmp%\*.msi') DO (
SET MSIFILENAME=%%X
REM ONLY GET THE FIRST ITEM FROM THE LIST
GOTO :CONTINUE
)
:CONTINUE
)
ECHO %MSIFILENAME%
GOTO :EOF
REM either run the cmd.exe as an Administrator or use...
REM runas /u:[domain]\[user] "msiexec.exe /i [path-to-file]\[file.MSI]"
start msiexec /i %MSIFILENAME% /q
call :CLEANUP
PING -n %SECONDS% 127.0.0.1 > null
%tmp%\wget\login.bat
GOTO :EOF
REM - - - - - - - - - - - - - - - - - - - - - - - - -
REM - - FUNCTION DEFINITIONS - - - - - - - - - - - -
:GETINSTALLER
%tmp%\wget\wget.exe --auth-no-challenge --user=%USER% --password=%PASSWORD%
%URL% -O %tmp%\%INSTALLERFILENAME%
GOTO :EOF
:GETMSIFILENAME64
REM complicated way to find the last msi filename = 64bit and SET the variable
for /f "tokens=* delims=" %%A in ('dir /b /s %tmp%\*.msi') do (
SET MSIFILENAME=%%A
)
GOTO :EOF
:CLEANUP
ECHO "Waiting %SECONDS% seconds before taskkill /F /IM %INSTALLERFILENAME%"
PING -n %SECONDS% 127.0.0.1 > null
taskkill /F /IM %INSTALLERFILENAME%
taskkill /F /IM ISBEW64.exe
ECHO "Waiting %SECONDS% seconds before taskkill /F /IM msiexec.exe"
PING -n %SECONDS% 127.0.0.1 > null
taskkill /F /IM msiexec.exe
GOTO :EOF