Archive: Exec syntax for ppm


Exec syntax for ppm
Hello,

I am familiar with executing .exe files with ExecWait, opening files with ExecShell, and even writing macro installers with lines such as
ExecWait '"msiexec" /i "$OUTDIR\ActivePerl-5.10.0.1004-MSWin32-x86-287188.msi" /norestart'

However, I seem to run into a snag when I try to execute the equivalent of the following cmd-line argument:

ppm install http://www.bribes.org/perl/ppm/Win32-Console-ANSI.ppd

(You can find details on what I am trying to achieve at http://www.bribes.org/perl/wANSIConsole.html)

I have tried phrasing the argument the same way as the msiexec argument above, i.e.:
ExecWait '"ppm" install "http://www.bribes.org/perl/ppm/Win32-Console-ANSI.ppd"'
but perhaps the fact that ppm arguments do not use a forward-slash '/' somehow confuses NSIS?


nsis does not care, it just passes the commandline to CreateProcess() are you sure ppm (.exe?) is in the path so CreateProcess finds it? if you use Process Monitor from sysinternals, you can see why the process does not start, or if it does, what the actual parameters it started with are


Hmm... is it possible for a command-line argument to work from the shell if it is not in the path for CreateProcess to find? Does Windows not share the same "PATH" environment variables with NSIS?

ppm is the Perl Package Manager... oh wait, perhaps NSIS does not recognize the same list of executable filetypes (usually derived from environment variable PATHEXT). In fact, ppm is a .bat file, not a .exe. So it looks like I'm fine as long as I explicitly write ppm.bat in my argument.

Is this a limitation of NSIS?