[wpkg-users] silent installer for Divalto stalls
r.meier at wpkg.org
Fri Jul 4 15:48:51 CEST 2014
On 04.07.2014 09:47, Vincent Malien wrote:
> I did a silent installer for Divalto Infinity: http://wpkg.org/Divalto_infinity
> it started to work fine, but since I added a xcopy of 108 files, the script
> stalls on this line:
> <install cmd='xcopy /Y "%SOFTWARE%\Divalto\sys\*.*" c:\divalto\sys\*.*'/>
> This command woks fine direct from the shell.
You've been just trapped by Microsoft bug in WSH. If your commands send more
than ~4kB of output to STDOUT and the buffer fills up, then Windows will stop
the process until STDOUT is flushed. Though I spent a lot of time on potential
workarounds of this issue but there is none. So you need to make sure your
commands don't print that much on STDOUT.
Unfortunately xcopy is going to print really a lot of output by default which
you won't see at all. So my recommendation is to redirect this output to NUL:
<install cmd='%COMSPEC% /c xcopy /Q /Y "%SOFTWARE%\Divalto\sys\*.*"
c:\divalto\sys\*.* > NUL'/>
Caution: Didn't check or verify the command. But it should redirect its output
to NUL (suppress it) and moreover also reduce the output by using /Q option.
Perhaps just adding /Q option would be sufficient even without redirect.
> In the FAQ, I found the topic 'My install command just stalls and never finishes
> ' which looks like my problem, so I changed the script like this:
> <install timeout="1000" cmd='xcopy /Y "%SOFTWARE%\Divalto\sys\*.*"
> c:\divalto\sys\*.* >%TEMP%\install-log.txt 2>&1'/>
2>&1 is not adequate redirect to NUL. It will just append STDERR to STDOUT which
will even print more to STDOUT. You need to redirect STDOUT to nul to suppress
it, or use /Q argument of xcopy to reduce amount of data printed.
More information about the wpkg-users