@flabdablet said:
set bin=%ProgramFiles% if "%PROCESSOR_ARCHITECTURE%" == "AMD64" ( set "bin32=%ProgramFiles(x86)%" ) else ( set "bin32=%bin%" )
Careful with this. %PROCESSOR_ARCHITECTURE% doesn't work as you might expect if you're in the 32 bit version of cmd.exe, which you might be if you're say, deploying this via SCCM.
I think you're ok in this one, as the folder redirection would put everything into the (x86) directory anyway.
We use an Oracle account to download the MSI with Autoupdate disabled, the hard coded expiration date turned off, and no extra crap. Someone then edits it to fix some stupid typos where some extra backslashes are added that causes it to fail a passive install, and plugs it into our default wrapper that does stupid stuff like uninstall all old versions (because Oracle doesn't know how to use the upgrade table in an MSI properly) and delete a few letover registry entries from old versions, shortcuts, etc.
We then still have the issue that, because Oracle doesn't know how to use the file table of an MSI properly, it drops an archive on the machine and then extracts the archive to provide the files. This causes any repair to fail pretty badly, of course. Honestly, we should probably start rewriting the MSI itself from scratch (and perhaps, putting it up on the webs in case other places want to use it- Then again, I wouldn't trust someone elses to a good job, so why would anyone trust me?)
tl;dr Fuck you Oracle.