I’m having an issue on Fluent Control with the presence of spaces in the command line parameter of the Start Application function.
I created an application that sends messages to Slack but when I enter the string in the command line parameter with spaces (ex. -t “Hello World”), the FC software treats this as two inputs “Hello” and “World” instead of one string input.
I’m tempted to rewrite the script so that it parses and manipulates a /s on the Slack end but would rather not deal with that mess…
The app works fine when it’s stand alone through the command line terminal.
Have you encountered this issue? Any workarounds?
Hello, I have checked with someone more knowledgable on this topic than myself and here is the feedback:
"I’ve not had any success sending arguments that contain spaces. I don’t know if there is a way round this, but I suspect not as I think the space is being picked up by the Fluent Control expression solver before it is even sent to the executable. My typical work around to this is to write the arguments to file using the Export Variable command and change to application to pick them up from that rather than from the sent argument list. This is only one extra line in Fluent Control very robust and easy to troubleshoot.
If the application must use the argument list and it is not possible to change I would probably use a simple intermediate VBscript. VBScript reads the arguments from a file and then executes the application with the correct arguments."
Hope it helps.
Good to know, I’ll submit a ticket so they can fix this abomination in future releases.
It looks like I have a few options,
- EXE with one word messages (WORKS!)
- Write to a file through Export Variable and then have the EXE send that instead (will work!)
- Review my Slack Bot so it can interpret a single string continuous string and swap “\s” with a space
- “Hello\sWorld” becomes “Hello World”
- Write VB.Net Script instead that pulls from a variable and posts directly to Slack
- Write VB.Net Script that pulls variable and then feeds that variable into the EXE from the VB script
I’ll share my EXE code later so future folks can quickly create something
Had an update for you:
It is possible to use a non-breaking space. This can then be used in place of the normal space character in the string.
I used the windows character map to select it and copy it into Fluent Control. You should be able to use ALT-160, but I’ve had issues with this depending on the language settings.
I was even able to use it in a variable to then build up an argument for testing.
Output result was
Which is correct with “Fred” being the second argument and “Mike Dave” being treated as the first argument.
What I don’t know is the final use in Slack, if the non-breaking space is treated correctly in the customers end application and how much effort it is to replace the normal space with the non-breaking space.
It may not be worth the effort especially if the output argument is non being built by Fluent Control in the first place.
I’ll give it a shot this AM in my VM.
Nice it worked but I’ll still work on an alternative.
Has anyone tried encapsulating with single quotes? This worked for me:
I’m pretty sure that I tried that but the difference is that I was feeding it variables from FC. It was doing something funky with the space (passing each word individually instead of as a collective string) so after a bit of debugging, I just had it join text on the other end.
Eventually I moved away from the EXE to a VB that feeds a .py script with arguments from FC.
And then now I can return also arguments back to a VB from a Python script.
I have a Tecan script that does something similar. I think I wrapped the values in single quotes as well using the concat function. I don’t have it returning a value though. The executable it’s running just records to a file and grab the values from there.