Executing Batch FIle From C++ with Spaces in the Path -


i want execute bath file using system() , path file passed function this:

void executebatch(char* batchfile){     system(batchfile); } 

now issue path passed in not have escape quotes ignore spaces example user input:

"c:\\users\\500543\\documents\\batch file project\\testing.bat" 

how add escape quotes path passed in?

so essentually change:

"c:\\users\\500543\\documents\\batch file project\\testing.bat" 

to

"\"c:\\users\\500543\\documents\\batch file project\\testing.bat\"" 

try

system("\"c:\\users\\500543\\documents\\batch file project\\testing.bat\""); 

as additional question comment, have use:

char* = "\"c:\\users\\500543\\documents\\batch file project\\testing.bat\"";  system(it); 

then.

as edited question, since you've marked question use , here's c++ solution how implement function correctly:

#include <sstream>  int executebatch(const char* fullbatchfilename) {     std::ostringstream oss;      oss << '\"' << fullbatchfilename << '\"';     return system(oss.str().c_str()); } 

don't make xy problem now! think should have understood principle these samples: wrap batch file name within pair of double-quote characters ('\"'), shell can interpret correctly. there pure c library methods available achieve (see <cstring>) wouldn't recommend these, if can use c++ standard library.


Comments