如何将c程序中的变量作为参数传递给批处理文件?

时间:2011-07-15 05:51:11

标签: c batch-file system command-line-arguments argument-passing

include<stdio.h>
include<stdlib.h>
  int main()
    {
      char a[20]="hello world";
system("./cool.bat a");\\here I need to pass the array as argument to batch file
       }

我相信你得到了我想说的话。我想传递一个c程序的数组,作为批处理文件的参数。但如果我说

   system("./omnam.bat a") \\ its taking a as an argument

我如何制作它?如何将变量或c程序数组作为参数发送到批处理文件。假设我可能在c程序中有一个整数I,其值为15.如何将它作为参数传递给批处理文件?任何人都可以用一些c文件和批处理文件发布它的例子。谢谢你

3 个答案:

答案 0 :(得分:2)

你需要构建一个由batch命令组成的char [],以及传递给它的变量内容

答案 1 :(得分:1)

使用snprintf在运行时构造字符串:

#include <stdio.h>
#include <stdlib.h>

int main(void)
{
    char a[20]="hello world";
    char command[256];
    snprintf(command, sizeof(command), "./cool.bat %s", a);
    system(command);
    return 0;
}

但是,请记住,system函数非常危险,尤其是在传递非常量字符串时。出于安全考虑,绝对确保不会将任意用户生成的字符串传递给它

答案 2 :(得分:0)

也许您可以使用标准IO编写批处理文件然后执行它?应该是一样的吗?