使用包含给定空格的路径启动程序



我有一个命令的字符串,例如: 开始C:Users...test application.exe具有空格的路径。
现在我想使用system()函数来启动它:

system(command.c_str());

但问题是,它没有启动,因为路径包含一个空格。 我该怎么做才能解决这个问题?

我该怎么做才能解决这个问题?

你需要知道的第一件事是system()使用 shell 来执行命令,如果路径包含空格,shell 希望你用""将程序路径括起来。

使用当前的C++标准,最简单的修复方法是使用原始字符串文字:

std::string command = R"("C:Userstest application.exe")";
system(command.c_str());

否则(对于较旧的C++标准),您需要转义所有特殊字符:

std::string command = "("C:\Users\test application.exe")";
// ^   ^      ^                     ^

最新更新