使用 C++ 运行批处理

Run batch with C++

本文关键字:批处理 运行 C++ 使用      更新时间:2023-10-16

我是一个C++初学者,但我正在尝试制作一个程序,该程序采用命令行参数并使用相同的参数执行bat文件。

#include <stdlib.h>
#include <string>
#include <iostream>
using namespace std;
int main(int argsc, char *args[]) {
    if (argsc!=0) {
        char arg[] = "run.bat ",args;
        return system(arg);
    }
    return argsc;
}

这是我的问题:
如何将"run.bat"与参数连接起来?系统将只采用"常量字符*"。

这样的事情应该可以工作:

 string cmd = "run.bat";
 for(int i = 1; i < argsc; i++)
 {
    cmd += " ";
    cmd += args[i]
 }
 return system(cmd.c_str());

(当然,包含空格的参数需要通过添加引号来进一步处理,而带有引号的参数可能需要转义,并且在args包含不直接处理的内容的情况下,还需要许多其他复杂情况)