cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
phanik
Level 6

how to handle & symbol in LaunchAppAndWait

hi folks,

I am executing a command using LaunchAppAndWait, in command line I am using password which is entred by the user. if the password contains "&" symbol e.g. Abcde&1234 command execution is failing, im getting the output as " operation Failed with user provided password
'1234' is not recognized as an internal or external command,"

my code is as follows, how to handle & symbol.

'I get the value of szLBPwd during installation
'szAppPath is executable binary path

szCmd = "";
szCmd = " -abcd -password " + szLBPwd + " abc -xyz > output.log 2>&1";

nRes = LaunchAppAndWait(svCmdPath ^ "cmd","/C " + szAppPath + szCmd, LAAW_OPTION_WAIT | LAAW_OPTION_HIDDEN);
nReturnCode = NULL;
nReturnCode = LAAW_PARAMETERS.nLaunchResult;


best regards
phanik
Labels (1)
0 Kudos
(3) Replies
rguggisberg
Level 13

phanik,
You need to quote the password string; but you need to escape the quotes using the 4 chars "\"" as shown below. Try changing this line to:
szCmd = " -abcd -password " + "\"" + szLBPwd + "\"" + " abc -xyz > output.log 2>&1";
0 Kudos
phanik
Level 6

thanks for your reply rguggisberg


I found a way before your reply and implemented but i am not sure it is right way to do it. If I find a & symbol in password i am adding ^ symbol by following below code. command execution is getting succeeded. Please let me is it right way.


if(svMyPwd % "&") then
StrReplace(svMyPwd, "&", "^&",0);
endif;


best regards
phanik
0 Kudos
rguggisberg
Level 13

That will work for &. You will probably have trouble with other characters too. Like (^%"
Quoting would work for most, but not for "
You may want to test further and escape other chars as you have done for &.
0 Kudos