Page 1 of 1

Pass Argument with quotes to MsiExec.exe

Posted: 18 May 2011 07:18
by loomy79
Dear Experts,

I want to make an installation CD of a SW and I have created an autorun.info which calls a bat file.
Setup.exe is an installshield EXE created software.
/v passes the parameters to MsiExec.exe to execute.

The bat file includes:
Setup.exe /v" InstallDir=D:\Folder\ /log D:\Syntergy\Logs\InstallationLog.log /qn+"

This works perfect. However I would like to Install the SW under D:\Program Files\Folder1 folder.
How can I pass this path to the InstallDir flag ??

The following line does not work!
Setup.exe /v" InstallDir=D:\Program Files\Folder\ /log D:\Syntergy\Logs\InstallationLog.log /qn+"

Thanks,
Dimitris.

Re: Pass Argument with quotes to MsiExec.exe

Posted: 18 May 2011 08:00
by Ed Dyreen
Goto http://unattended.msfn.org/unattended.xp/

They have all you need, it is quite possible that the installer simple does not accept @installdir!

What program are you trying to unattend ?, If you succeed, it is much appreciated if u post your result !

run msiexec without params, you'll get a help screen :!:

You need to examine your program &GOOGLE, they are all different in the way they install unfortunately!
or try something like

Code: Select all

msiexec /qb /l* perl-log.txt /i ActivePerl.msi PERL_PATH=Yes PERL_EXT=Yes

Install_PQMagic\setup\setup.exe /s /sms /f1"%~d0%~p0ISSFile.iss" /f2"%tmp%\ISSLogFile.Log"
start /wait foo.exe /s /a /s /sms /f1c:\temp\foo.iss

updcon532.exe /s /a /s /v"/qb"


INF Files can be used to install and remove applications, general
files, etc. To script an INF file to install or remove, you call the
RunDLL32 application from a script using the following syntax:

128: Never reboot
129: Always Silent Reboot
132: Prompt reboot

Windows 9x:

Installation: rundll setupx.dll,InstallHinfSection DefaultInstall 128 .\MyFile.INF

Uninstall: rundll setupx.dll,InstallHinfSection DefaultUninstall 4 .\MyFile.INF

Windows NT/2000/XP:

Installation: rundll32 setupapi,InstallHinfSection DefaultInstall 128 .\MyFile.INF
or : rundll32 syssetup,SetupInfObjectInstallAction DefaultInstall 128 .\MyFile.INF

Uninstall : rundll32 setupapi,InstallHinfSection DefaultUninstall 128 .\MyFile.INF
or : rundll32 syssetup,SetupInfObjectInstallAction DefaultUninstall 128 .\MyFile.INF

Wise Setup.exe Switches

/T test mode
/X pathname extracts files into pathname
/Z pathname extracts files into pathname and reboots
/S silent install
/M prompts for windows, system, temp dirs
/M=filename specifies a value file similar to /d above,
but for standard variables
/M1 same as /m plus it prompts before any file that is self-registered
/M2 reserved for internal use by Wise during debugger sessions

Uninstall (Unwise.exe switches)

/Z remove empty directories, including one with unwise itself in it.
/A automatic mode, no user choices other than cancel.
/S silent mode, automatic mode with no user choices
/R rollback mode, selects option to rollback on uninstall
/U like automatic mode, but gives all choices other than custom/automatic
title window title can be at the end of the command line.

Download these programs, they are GREAT :!:
CMenu.exe
InstallTailor.msi
robosetup.exe
ussf.exe
WICLB.exe

Re: Pass Argument with quotes to MsiExec.exe

Posted: 18 May 2011 08:15
by loomy79
Thank you Ed for your help.
I think (not quite sure) that since the MSI is embded in a setup.exe created by InstallShield software there is a way to pass parameters to the MSI when this is extracted and executed. This can be implemented by using the -v command line argument.

The problem here has to do with passing a string:
this is a string having quotes iside: This is a " quotes string

If I use non-blank paths everything works fine...

Re: Pass Argument with quotes to MsiExec.exe

Posted: 18 May 2011 08:20
by loomy79
Hello !!
I finally found a solution:
"Setup.exe" /v" /log \"D:\Program Files\Syntergy\Logs\InstallationLog.log\" /qn+ INSTALLDIR=\"D:\Program Files\Syntergy\""

The Program Ed is Replicator software for replicating content between SharePoint farms.
Thnks a lot!

Re: Pass Argument with quotes to MsiExec.exe

Posted: 18 May 2011 08:22
by Ed Dyreen
I see, well since it is an MSI you could try using a transformation file.

U catch thIS MSI from %TMP% during setup.

U can then create a transform.MST using for example InstallTailor ;)

start "!TITLE!" /low /wait "%SystemROOT%\system32\msiexec.EXE" /I "!TITLE!.MSI" /QN TRANSFORMS="!TITLE!.MST"

But if I were you I would use AutoIT, because it is so easy and so satisfying :wink:

Re: Pass Argument with quotes to MsiExec.exe

Posted: 18 May 2011 08:23
by Ed Dyreen
I'm glad u solved it :mrgreen: