Problem is this
myscript -p <zumerkelen> -x something else myscript is my AutoIt compiled CUI.
-p <> is first param - fails, see below
-x [text] second param, works.
When I run this with the param enclosed in <> I get the response
The syntax of the command is incorrect.
Experimentation indicates that the <> tags are the problem.
_ArrayDisplay($CmdLine, "1 Array") MsgBox(16, "1 Raw", $CmdLineRaw) The problem is with the reading of the command line. It fails BEFORE it gets into the variables...
I am not dealing with AutoIt, or even my own command line, this is legacy software. It seems that AutoIt "interprets" the <> before loading the command line... I need to be able to read that as text without it being interpreted.
The only part I can control is my script, the myscript, which I can change at will.
The standard command line functions appear all to interpret params on read. I want those params read raw. If I could just get that as a string it would be fine.
Where to look?
Hello all! I'm trying to make a little script that sends a message over TCP. An example payload would be:
MY_PAYLOAD#<ATTRS><ATTR><NAME>MAILSERVER</NAME><OPERATION>set_value(ServiceStatus)</OPERATION><VALUE><![CDATA["Not Running"]]></VALUE><TIMESTAMP>1349297031</TIMESTAMP></ATTR></ATTRS> Note how the payload contains special characters, and how the CDATA contains a SPACE (i.e. "Not Running")
My compiled AU3 script expects exactly two command line arguments:
1) destination server/port expressed as 127.0.0.1:80
2) the payload I want to send to my server application (which may have multiple ATTRs, this example only has one ATTR)
MyApp.exe 127.0.0.1:80 "MY_PAYLOAD#<ATTRS><ATTR><NAME>MAILSERVER</NAME><OPERATION>set_value(ServiceStatus)</OPERATION><VALUE><![CDATA["Not Running"]]></VALUE><TIMESTAMP>1349297031</TIMESTAMP></ATTR></ATTRS>"
My problems (plural) are with parsing of the second argument:
1) If I don't wrap second argument in double-quotes, then Windows bails out before even launching EXE with "< was unexpected at this time"
2) If I DO wrap second argument in double-quotes, then two problems can arise when my EXE parses the arguments:
aa) The double-quotes are stripped from the CDATA value. ["Running"] is stored in the array as [Running]
bb) If CDATA value DOES have a space, such as ["Not Running"], then I get an extra unwanted $CmdLine because the SPACE between Not and Running is treated as a separator. My second argument is thus split into two separate arguments,  and  instead of being treated as one arg stored in 
cc) Additionally, my script exits because it has an "IF $CmdLine <>2 THEN Exit (1)" to validate the command line args.
I've tried launching the EXE with the second argument wrapped and escaped in a multitude of ways. Double double-quotes, triple double-quotes, single-quotes on the outside with double-quotes inside (i.e. '"ETC"'), starting the second arg with a caret (i.e. ^"ETC") and one of three things happens:
1) "< was unexpected at this time"
2) my CDATA value is stripped of its double-quotes
3) my payload argument gets split at the space in the CDATA value and the script bails out due to the unexpected 3rd argument.
Any ideas? How can I preserve the second argument literally, including all special characters, quotes and spaces?
I tried adding some string manipulation code to grab the 2nd argument from $CmdLineRaw and it works (preserves the "Not Running" with quotes), but my number of arguments is still 3 instead of 2 if there is a space in the CDATA value.
Any assistance would be greatly appreciated!
Is this possible?