【问题标题】:Run batch with C++使用 C++ 运行批处理
【发布时间】:2015-01-22 20:06: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”与 args 连接起来?系统只会取“const char*”。

【问题讨论】:

    标签: c++ string batch-file char concatenation


    【解决方案1】:

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

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

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

    【讨论】:

    • 添加了空格,以及关于空格/引号/转义的评论。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-10-29
    • 1970-01-01
    • 1970-01-01
    • 2017-10-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多