Winamp & Shoutcast Forums

Winamp & Shoutcast Forums (http://forums.winamp.com/index.php)
-   NSIS Discussion (http://forums.winamp.com/forumdisplay.php?f=65)
-   -   Redirecting output of executed programs (http://forums.winamp.com/showthread.php?t=287139)

RikoOnWeb 18th February 2008 22:09

Redirecting output of executed programs
 
Hi,

I need to redirect the output of the utility I execute during installation to a file. It's actually a conversion from UTF-16 to UTF-8 and back using iconv.exe that outputs everything to the standard output. I tried running nsExec, Exec, !System, example:
ExecWait "$\"$INSTDIR\iconv.exe$\" -f UTF-16 -t UTF-8 $\"$INSTDIR\Templates\Full page with Rewards.xml$\" > $\"$INSTDIR\Templates\Full page with Rewards2.xml$\"" $4

It never created the output file.

How can I achieve redirecting standard output to a file or if that's not possible/easy enough, what's another way to do UTF-8 to UTF-16 conversion that would allow me to redirect output to a file?

Thank you for any help

Mr Inches 19th February 2008 08:23

Hi

If you want to use redirection you will probably need to run the command under a command shell, e.g.:
code:

StrCpy $R0 'cmd.exe /c "$\"$INSTDIR\iconv.exe$\" -f UTF-16 -t UTF-8 $\"$INSTDIR\Templates\Full page with Rewards.xml$\" > $\"$INSTDIR\Templates\Full page with Rewards2.xml$\""'

ExecWait $R0
Pop $4




If that doesn't work, you could build a batch file at runtime to run the appropriate command e.g.
code:

StrCpy $R0 "$TEMP\temp.cmd"

FileOpen $R1 $R0
FileWrite $R1 '$\"$INSTDIR\iconv.exe$\" -f UTF-16 -t UTF-8 $\"$INSTDIR\Templates\Full page with Rewards.xml$\" > $\"$INSTDIR\Templates\Full page with Rewards2.xml$\"'
FileClose $R1

ExecWait "cmd.exe /c $R0" $4

Delete $R0



Duncan

Takhir 19th February 2008 09:39

http://nsis.sourceforge.net/ExecDos_plug-in also writes to file.

RikoOnWeb 19th February 2008 15:21

Thanks a lot, this worked.

Quote:

Originally posted by Mr Inches
Hi

If you want to use redirection you will probably need to run the command under a command shell, e.g.:
code:

StrCpy $R0 'cmd.exe /c "$\"$INSTDIR\iconv.exe$\" -f UTF-16 -t UTF-8 $\"$INSTDIR\Templates\Full page with Rewards.xml$\" > $\"$INSTDIR\Templates\Full page with Rewards2.xml$\""'

ExecWait $R0
Pop $4




If that doesn't work, you could build a batch file at runtime to run the appropriate command e.g.
code:

StrCpy $R0 "$TEMP\temp.cmd"

FileOpen $R1 $R0
FileWrite $R1 '$\"$INSTDIR\iconv.exe$\" -f UTF-16 -t UTF-8 $\"$INSTDIR\Templates\Full page with Rewards.xml$\" > $\"$INSTDIR\Templates\Full page with Rewards2.xml$\"'
FileClose $R1

ExecWait "cmd.exe /c $R0" $4

Delete $R0



Duncan



All times are GMT. The time now is 17:54.

Copyright © 1999 - 2010 Nullsoft. All Rights Reserved.