Jump to content

.MSI installer function using variables


ondrovic
 Share

Recommended Posts

Hello,

I am new to autoit and I am trying to create a function that uses a variable for the location and name of a .msi file to install, but I can't seem to get quotes or syntax correct and was wonder if anyone could provide some help.

Here is the function I am trying to write:

Func _msi($msi) ;==> this uses the .msi specified and installs it then creates a log file for the install

RunWait('msiexec.exe /i ' & $msi & ' /qb /lv* "C:"' & $msi & ".log")

EndFunc

EDIT: Seem to have it installing now but still working on getting the log file

Func _MSI($msi) ;==> function to install .msi
ShellExecuteWait($msi,'/qb')
EndFunc

_MSI("C:TempAdobeAir.msi")

Thanks for the help

Edited by ondrovic
Link to comment
Share on other sites

Does the $msi variable contain the full path and file name of the file you're running? Does the path have spaces in it, you might need quotes around the $msi variable if it does.

RunWait('msiexec.exe /i "' & $msi & '" /qb /lv* "C:' & $msi & '.log"')

Something like that. BTW, if the $msi variable has the full path and file name in it, then the logging section won't work because you will have the path and the C: in the same name. If it doesn't have the full path name in it, you will need to add it before the $msi variable because msiexec needs to know where it is.

Edited by BrewManNH

If I posted any code, assume that code was written using the latest release version unless stated otherwise. Also, if it doesn't work on XP I can't help with that because I don't have access to XP, and I'm not going to.
Give a programmer the correct code and he can do his work for a day. Teach a programmer to debug and he can do his work for a lifetime - by Chirag Gude
How to ask questions the smart way!

I hereby grant any person the right to use any code I post, that I am the original author of, on the autoitscript.com forums, unless I've specifically stated otherwise in the code or the thread post. If you do use my code all I ask, as a courtesy, is to make note of where you got it from.

Back up and restore Windows user files _Array.au3 - Modified array functions that include support for 2D arrays.  -  ColorChooser - An add-on for SciTE that pops up a color dialog so you can select and paste a color code into a script.  -  Customizable Splashscreen GUI w/Progress Bar - Create a custom "splash screen" GUI with a progress bar and custom label.  -  _FileGetProperty - Retrieve the properties of a file  -  SciTE Toolbar - A toolbar demo for use with the SciTE editor  -  GUIRegisterMsg demo - Demo script to show how to use the Windows messages to interact with controls and your GUI.  -   Latin Square password generator

Link to comment
Share on other sites

Does the $msi variable contain the full path and file name of the file you're running? Does the path have spaces in it, you might need quotes around the $msi variable if it does.

RunWait('msiexec.exe /i "' & $msi & '" /qb /lv* "C:' & $msi & '.log"')

Something like that. BTW, if the $msi variable has the full path and file name in it, then the logging section won't work because you will have the path and the C: in the same name. If it doesn't have the full path name in it, you will need to add it before the $msi variable because msiexec needs to know where it is.

Yes the $msi will have the full path, the plan is to have the MSI installers in C:Temp then to just call the function based on that

_msi("C:TempApplication.msi")

Thanks

Edited by ondrovic
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...