Reputation: 5385
I have the find.exe program in my utils folder. This does not work:
system("\"utils/find.exe\"");
All I get is
'utils' is not recognized as an internal or external command,
operable program or batch file.
However, for some reason this works:
system("\"\"utils/find.exe\"\"");
Echoing the single quoted string
system("echo \"utils/find.exe\"");
outputs
"utils/find.exe"
... so why do I need two quotes?
Upvotes: 4
Views: 1531
Reputation: 100748
Even though you can use both / and \ as directory separators in Windows, the command processor will try to interpret anything starting with a / as a switch. Try this:
system("\"utils\\find.exe\"");
Upvotes: 0
Reputation:
I assume you're on windows because you're trying to execute an .exe file. So, instead of writting "utils/find.exe", try to write "utils\find.exe". The delimiting character on windows is '\', so it probably sees "utils" as a command since '/' is ignored.
Upvotes: 3
Reputation: 75577
Perhaps system()
is passing your command line to the shell, e.g. cmd.exe
, which also needs quoting?
Upvotes: 1