【发布时间】:2013-07-11 17:21:32
【问题描述】:
我想使用 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\""
【问题讨论】:
-
如果您不打算更改它,请不要使用非常量
char *。 -
只需使用
std::string即可快速轻松地完成此操作,不过我建议使用旨在打开文件而不是执行任意命令的 API。
标签: c++ batch-file cmd