Shell Parameters vs Arguments and other Shell Questions

I’m fairly noob at Shell stuff but have a new project that’s going to require a lot of (Windows) shelling to control external applications.

I’m unclear as to when to use parameters passed with the Execute command as opposed to passing things in the Arguments property. In this topic XOJO ignoring arguments when running an EXE from shell, KevinG suggested passing them in Arguments, but the OP found this didn’t work and the solution turned out to be passing them in Execute(path,[parameters]).

Also, I see MBS has a ShellMBS class of their own (of course). Any significant benefits to using this instead of Xojo’s?

Execute(Command As String, [Parameters As String])

edit (misunderstood question)

Yes, I understand the Execute method. My question is how does the [parameters] parameter of the Execute method differ from the Arguments property of the Shell class.

https://documentation.xojo.com/api/os/shell.html#shell-arguments

öhm

because the docu say
Arguments As String
Specifies the arguments to pass to the Shell backend. The default is "-c".
i think it is something else and have nothing to do with the parameters at execute.

seems this name “Arguments” there is good for wrong interpretation.

Ah, thank you :slight_smile:

Arguments sends it to the backend for example if the backend is bash then xojo executes something like:

“/bin/bash -c “”/path/to/the/shell arg1 arg2"”"

This happens internally, your command is actually:
Execute(“/path/to/the/shell”, “arg1 arg2”)
xojo does the rest.

2 Likes

That is a very clear explanation. Xojo should add it to the docs verbatim :slight_smile:

3 Likes

Thanks, xojo would have my permission to do so.