I believe the correct syntax is: (you need to backslash out quotes within quotes) REG ADD %KEY%\002 /V 1 /D "\"%systemdrive%\install\Sun JVM\j2re142 03.exe\" /s /v \"/qn ADDLOCAL=jrecore,extra IEXPLORER=1 REBOOT=Suppress\"" /f (the quotes around the path are only needed for filenames or folders with spaces) REG ADD %KEY%\002 /V 1 /D "%systemdrive%\install\SunJVM\j2re14203.exe /s /v \"/qn ADDLOCAL=jrecore,extra IEXPLORER=1 REBOOT=Suppress\"" /f I'm unsure about the /s /v "<parameters>" /v passes parameters to the MSI package, including: /qn which makes the MSI process silent Its an InstallShield package with an MSI package inside so i think /s or -s (same) could be used with a setup.iss but in this case will hide the extraction/initialization process of the MSI by InstallShield I don't think it makes any sense to use "/qn ADDLOCA..." without the /v REG ADD %KEY%\035 /V 1 /D "%systemdrive%\install\SunJVM\j2re14203.exe"/qn ADDLOCAL=jrecore IEXPLORER=1"" /f I wouldnt think spacing matters here, but i guess it does start /wait %systemdrive%\install\Applications\SunJava\Java14203.exe /s /v<space>"/qn ADDLOCAL=jrecore IEXPLORER=1" Here's a link to the InstallShield switches(includes a link to MSI switches as well) Oh and normally: REG ADD %KEY%\002 /V 2 /D "REGEDIT /S %systemdrive%\install\SunJVM\sun.reg" /f would be a bad thing (running regedit with %systemdrive%) but it puts the path inside the registry entry immediately not the variable