2014-11-24 54 views
0

我是一名C++初学者,但我正在试图制作一个程序,该程序使用命令行参数并执行带有相同参数的bat文件。使用C++运行批处理

#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” 与ARGS?系统只会采用“const char *”。

+0

使用'std :: string'。 – 2014-11-24 23:39:32

回答

3

像这样的东西应该工作:

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

(当然,有空格的ARGS将需要通过添加引号来进行进一步处理,并与报价参数可能需要逃避,和许多其他并发症在args包含不直接处理的东西的情况下)

+0

添加空间,以及关于间隔/引号/转义的评论。 – 2014-11-24 23:43:37

+0

非常感谢。 – AidanCodeX 2014-11-25 00:53:25