Exactly what sting does this argument send? Is a quotation mark (") automatically supplied on both sides of the path string? Does it add anything extra?
I am using Everything. voidtools.com/
The starting folder can be specified from command line as follows:
Everything.exe -path {filepath}
In my environment (Opus 9.1.3.0), an extra quatation mark is added at the end when there is a space in the path (e.g. C:\Program Files), and this is fatal for Everything.
A way around this problem is to use {allfilepath} (or %1, %L). There is no extra quotation mark with this. Why the difference? Is this normal?
BTW, I used {filepath$} so that the button will do nothing if no files are selected. If you use {filepath} instead then the button will run "Everything.exe -path " if you accidentally click it when nothing is selected.
Everything (unicode compatible) displays the following with {filepath}.
"C:\Program Files""
"C:\Temp"("C:\Temp" above is a typo)
Is this an encoding bug of a string (with a space) ending backslash?
My Windows locale is not English and, you know, a backslash is mapped to a different symbol in a different locale.
With {filepath|noterm}, everything (not the name of the program) is fine.
Given that you seem to have established (via the DOS Command window) that Opus is providing the correct arguments, it looks like your other programs are not parsing the command line properly and adding a spurious " to the line.
You might be better off reporting the "bug" to them.
There's an issue with some programs and quoted paths that end in a , because the " is interpreted as an escaped " character.
Using noterm fixes it.
(The same problem affects my SetClip program which uses the MS C-Runtime to parse command-line arguments. There's a table on that page showing what happens with different \ and " combinations at the end of an argument. I'm not completely sure what is at fault, but it's easily fixed by using noterm in Opus.)
I just checked and {allfilepath} doesn't include the extra \ at the end of folder paths. So it's like {filepath|noterm} and the "noterm" behaviour is by default with it.