1 #include <stdio.h> 2 #include <string.h> 3 #include <windows.h> 4 char prog[80],token[8],ch,sa[8]; 5 char *mean[6]={"主要用来显示一个目录下的文件和子目录。", "改变或显示当前目录", "创建一个子目录 ", " 删除空子目录 ", "清除显示器屏幕上的内容,使DOS提示符到屏幕左上角 "}; 6 int syn,p,m,n,sum; 7 char *rwtab[7]={"dir","cd","md","rd","cls","help","exit"}; 8 scaner(); 9 10 11 void main() 12 { 13 int i=0; 14 printf("Microsoft Windows [版本 6.3.9600] "); 15 printf("<c> 2013 Microsoft Corporation。保留所有权利 "); 16 do{ 17 scaner(); 18 switch(syn) 19 {case 11:{ 20 if(n==5) 21 { 22 for(i=0;i<5;i++){ 23 strcpy(sa,token); 24 system(sa); 25 printf("%-5s%s ",rwtab[i],mean[i]); 26 27 } 28 } 29 else if(n==6) break; 30 else{ 31 strcpy(sa,token); 32 system(sa); 33 printf("'%s'是内部命令,作用是:%s ",token,mean[n]); 34 } 35 } 36 break; 37 38 default: printf("'%s'不是内部命令。 ",token); 39 break; 40 } 41 }while(strcmp(token,"exit")); 42 } 43 44 45 scaner() 46 { 47 sum=0; 48 p=0; 49 for(m=0;m<8;m++) 50 { 51 prog[m]=NULL; 52 token[m]=NULL; 53 } 54 printf(" C:Documents and Settingshskd>"); 55 do{ 56 scanf("%c",&ch); 57 prog[p++]=ch; 58 }while(ch!=' '); 59 for (p=0;p<4;p++) { 60 prog[p] = tolower(prog[p]); //大小写转换 61 } 62 p=0; 63 for(m=0;m<8;m++) 64 token[m++]=NULL; 65 ch=prog[p++]; 66 m=0; 67 while((ch==' ')||(ch==' ')) 68 ch=prog[p++]; 69 if(((ch<='z')&&(ch>='a'))||((ch<='Z')&&(ch>='A'))) 70 { while(((ch<='z')&&(ch>='a'))||((ch<='Z')&&(ch>='A'))||((ch>='0')&&(ch<='9'))) 71 {token[m++]=ch; 72 ch=prog[p++]; 73 } 74 p--; 75 syn=10; 76 for(n=0;n<7;n++) 77 if(strcmp(token,rwtab[n])==0) 78 { 79 syn=11; 80 return n; 81 } 82 } 83 return 0; 84 }