#include#include #include #include #define N 80struct miniOS{ int a; char COM[50]; char COM1[100];};struct miniOS os[N];main(){ FILE *fp; int i,n; char str[N]; printf("Microsoft Windows XP [版本 5.1.2600]\n"); printf(" 版权所有 1985-2001 Microsoft Corp.\n"); fp=fopen("cmd.txt","r+"); for(i=0;!feof(fp);i++) { fscanf(fp,"%s%s%d",os[i].COM,os[i].COM1,&os[i].a); n=i; } fclose(fp); while(1){ printf("\n"); printf("C:\\Document and Setting Administrator>"); gets(str); strlwr(str); for(i=0;i<=n;i++) { if(strcmp(str,"help")==0) { for(i=0;i<=n;i++) { printf("%s\t%s\n",os[i].COM,os[i].COM1); } break; } else if((strcmp(str,os[i].COM)==0)&&(os[i].a==1)) { if((strcmp(str,"cls")==0)) { system("cls"); break; } else { printf("\"%s\"是内部命令,输入正确\n",os[i].COM); printf("该命令的作用是:%s\n",os[i].COM1); break; } } else if((strcmp(str,os[i].COM)==0)&&(os[i].a==0)) { if((strcmp(str,"quit")==0)) { exit(0); } else { printf("\"%s\"是外部命令,输入正确\n",os[i].COM); printf("该命令的作用是:%s\n",os[i].COM1); break; } } else if((strcmp(str,os[i].COM)!=0)&&(i==n)) { printf("'%s'不是内部或外部命令,也不是可运行的程序或批处理文件\n",str); } } printf("\n"); }}
cmd.txt
dir 显示一个目录中的文件和子目录。 1
cd 显示当前目录的名称或将其更改。 1md 创建目录。 1rd 删除目录。 1cls 清除屏幕。 1date 显示或设置日期。 1time 显示或设置系统时间。 1ren 重命名文件。 1copy 将至少一个文件复制到另一个位置。 1javac 将某一个java程序进行编译。 0java 运行某一个已编译的java文件。 0erase 删除至少一个文件。 1chkntfs 显示或修改启动时间磁盘检查。 1assoc 显示或修改文件扩展名关联。 1at 计划在计算机上运行的命令和程序。 1attrib 显示或更改文件属性。 1call 从另一个批处理程序调用这一个。 1help 提供Windows命令的帮助信息 0quit 退出命令解释程序 0