这个网站是一个巨大的知识来源,它在过去无数次帮助过我。
我刚开始自己学习 C - 直到现在我才写了几个批处理文件。
所以我谦卑地请求你的帮助 - 我想要一些关于如何编写C程序的指导原则:
"batch1.cmd" "argument1" "1"
"batch2.cmd" "argument2" "0"
"batch3.cmd" "argument3" "1"
2)解析它以找到“0”或“1”
如果“1”调用,则指定批处理文件及其参数
如果“0”转到下一行 - 我将定期更新文本文件,因此我只需要更改1或0而不是重写所有这些行。
我已经在互联网上的 C 解析中找到了很多帮助,但没有关于如何实现这一点的教程。 我知道这看起来很容易,而且我必须表现得像一个非常懒惰的人,但我向你保证,我已经三天了,但没有任何成功。
我不一定要求一个完整的脚本,只是像“查看以下函数,它的正确语法是yadda yadda”等答案。
我想我必须使用
int Search_in_File(char *fname, char *str)
{ FILE *fp;
fp=fopen("c:\\batchlist.txt", "r");
和
system("c:\\batch1.cmd argument1");
但我无论如何都不能“连接点”。
提前致谢!
答案 0 :(得分:1)
看看http://en.wikipedia.org/wiki/C_file_input/output - 你非常接近。打开文件后,需要从文件中读取行或字符,并根据找到的内容执行system
命令。
该wiki页面将向您展示如何 - 它也有一些方便的示例代码:)
答案 1 :(得分:0)
int Search_in_File(char *fname, char *str)
{ FILE *fp;
char line[100],a[100],b[100],c[100];
fp=fopen("c:\\batchlist.txt", "r");
if( !fp ) ... errorhandling here ...
while( fgets(line,100,fp) )
{
if( strchr(line,'\n') ) *strchr(line,'\n')=0;
if( 3==sscanf(line,"%s%s%s",a,b,c) && !strcmp(c,"1") ) /* "%s" breaks at whitespaces, attention for whitespaces in your strings here! */
{
sprintf(line,"%s %s",a,b);
system(line);
}
}
...
fclose and so on ...
}