Board logo

标题: 转贴:添加路径程序 [打印本页]

作者: MYS     时间: 2002-11-1 00:00    标题: 转贴:添加路径程序

添加路径程序 大家经常发现某些软件安装时修改了AUTOEXEC.BAT文件,使路径 PATH指向自己的目录。本文提供一个小程序可完成此项功能。本程序可以直接 使用: ADPATH 路径名,也可将函数addpath( )用在自己的安 装程序中。 本程序在Turbo C 2.0下编译通过,在X86兼容机上使用正常。 附源程序 ADPATH.C 1 #include 2 #include 3 #include 4 #define flag1 "set path=" 5 #define flag2 "path=" 6 #define endchar(s) (((char *)s)[strlen(s) - 1]) 7 main(int argc,char *argv[]) 8 { if(argc<2) 9 {printf("Usage: ADPATH newpath\n";exit(1);} 10 addpath(argv[1]);} 11 addpath(char *newpath) 12 {FILE *aut,*tmp; 13 char buffer[256]; 14 char tname[L_tmpnam]; 15 tmpnam(tname); 16 if((aut=fopen("c:\\autoexec.bat", "r")==NULL) 17 {printf("erro open autoexec.bat";exit(1);} 18 if((tmp=fopen(tname, "w")==NULL) 19 {printf("error create tmpfile";exit(1);} 20 while (!feof(aut)) 21 {strcpy(buffer,""; 22 fgets(buffer, 256, aut); 23 if((strnicmp(buffer, flag1, strlen(flag1))==0) ||(strnicmp(buffer, flag2, strlen(flag2)))==0) 24 {if(endchar(buffer)=='\n') endchar(buffer) ='\0'; 25 strcat(buffer, (endchar(buffer)==';' ? "" : ";"); 26 strcat(strcat(buffer, newpath), "\n"; 27 }fputs(buffer,tmp); 28 }fclose(aut); 29 fclose(tmp); 30 remove("c:\\autoexec.bat"; 31 rename(tname,"autoexec.new"; 32 system("copy autoexec.new c:\\autoexec.bat"; 33 remove("autoexec.new"; 34 } □山东 许振华

作者: baobolz     时间: 2002-11-3 00:00
不错。

作者: 禅宗     时间: 2002-11-3 00:00
这个程序还不如直接用批处理来得更自然啊:)