3

system() を使用してバッチ ファイルを実行したいのですが、ファイルへのパスが関数に渡されるため、次のようになります。

void executeBatch(char* BatchFile){
    system(BatchFile);
}

ここでの問題は、渡されたパスにスペースを無視するためのエスケープ引用符がないことです。たとえば、ユーザーは次のように入力します。

"C:\\Users\\500543\\Documents\\Batch File Project\\Testing.bat"

渡されたパスにエスケープ引用符を追加するにはどうすればよいですか?

だから私は本質的に変更します:

"C:\\Users\\500543\\Documents\\Batch File Project\\Testing.bat"

"\"C:\\Users\\500543\\Documents\\Batch File Project\\Testing.bat\""
4

1 に答える 1

2

私はあなたがそのようなものが欲しいと思います:

void executeBatch(char* BatchFile){
string cmd(BatchFile)
string expandCmd = string("\"") + cmd + string("\"");
system(expandCmd.c_str());
}
于 2013-07-11T18:01:07.423 に答える