2014-11-24 41 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