#include<stdio.h>
#include<conio.h>
#include<string.h>
#include<stdlib.h>
#define N 100
struct miniOS
{
int a;//记录是内部命令还是外部命令
char command[10];//记录命令
char YON_parameter[20];//记录该命令是否需要参数
char commandstate[100];//陈述命令的功能
};
struct miniOS os[N];
void judge(char str[],int n)//判断命令的对错
{
int i;
for(i=0;i<=n;i++)
{
if(stricmp(str,"help")==0)
{
for(i=0;i<=n;i++)
{
printf("%s\t%-34s%-20s\n",os[i].command,os[i].commandstate,os[i].YON_parameter);
}
break;
}
if((stricmp(str,os[i].command)==0)&&(os[i].a==1))
{
printf("\"%s\" \"%s\" 是内部命令,输入正确!\n",os[i].command,os[i].YON_parameter);
printf("该命令的作用是:%s\n",os[i].commandstate);
break;
}
else if((stricmp(str,os[i].command)==0)&&(os[i].a==0))
{
printf("\"%s\" \"%s\" 是外部命令,输入正确!\n",os[i].command,os[i].YON_parameter);
printf("该命令的作用是:%s\n",os[i].commandstate);
break;
}
else if((stricmp(str,os[i].command)!=0)&&(i==n))
{
printf("'%s'不是内部或外部命令,也不是可运行的程序\n或批处理文件\n",str);
}
}
}
void command_function(char str[],int n)//命令功能
{
int i;
for(i=0;i<=n;i++)
{
if(stricmp(str,"cls")==0)
{
system("cls");//清屏
}
}
}
int file()//文件的读取
{
int i,n;
FILE *fp;
fp=fopen("cmd.txt","r+");
for(i=0;!feof(fp);i++)
{
fscanf(fp,"%s%s%s%d",os[i].command,os[i].commandstate,os[i].YON_parameter,&os[i].a);
n=i;
}
fclose(fp);
return n;
}
main()
{
int n;
char str[N];
printf("Microsoft Windows [版本 6.1.7601 ]\n");
printf("版本所有 <c> 2009 Microsoft Corporation。保留所有权利\n\n");
n=file();
while(1){
printf("C:\\Users\\Administrator.USER-20151120JI>");
gets(str);
judge(str,n);
command_function(str,n);
printf("\n");
}
}
![](https://images2015.cnblogs.com/blog/809061/201603/809061-20160325153200042-2022927771.png)
![](https://images2015.cnblogs.com/blog/809061/201603/809061-20160325153227339-200886356.png)
![](https://images2015.cnblogs.com/blog/809061/201603/809061-20160325153904714-1994352746.png)