实验一 命令解释程序的编写
一、目的和要求
1. 实验目的
(1)掌握命令解释程序的原理;
(2)*掌握简单的DOS调用方法;
(3)掌握C语言编程初步。
2.实验要求
编写类似于DOS,UNIX的命令行解释程序
(1)自行定义系统提示符
(2)自定义命令集(8-10个)
(3)用户输入HELP以查找命令的帮助
(4)列出命令的功能,区分内部还是外部命令
(5)用户输入QUIT退出
(6)内部命令有dir, cd, md, rd, cls, date, time, ren, copy等。
1 #include<stdio.h> 2 #include <stdlib.h> 3 # include<string.h> 4 main() 5 { 6 char cmd[20][20]={"dir","cd","md","rd","cls","date","time","ren", "copy","quit","help"}; 7 char str[10]; 8 int i; 9 printf("Microsoft Windows XP [版本 5.1.2600] "); 10 printf("<c> 版权所有 1985-2001 Microsoft Corp "); 11 while(1){ 12 printf("C:Documents and Settingshskd>"); 13 gets(str); 14 strlwr(str); 15 for(i=0;i<20;i++) 16 { 17 { 18 if(strcmp(str,cmd[0])==0) 19 { 20 printf("类型:内部命令 "); 21 printf("显示一个目录中的文件和子目录。 "); 22 printf(" "); 23 printf(" "); 24 break; 25 } 26 else if(strcmp(str,cmd[1])==0) 27 { 28 printf("类型:内部命令 "); 29 printf("显示当前目录的名称或将其更改。 "); 30 printf(" "); 31 printf(" "); 32 break; 33 } 34 else if(strcmp(str,cmd[2])==0) 35 { 36 printf("类型:内部命令 "); 37 printf("创建一个新目录··· "); 38 printf(" "); 39 printf(" "); 40 break; 41 } 42 else if(strcmp(str,cmd[3])==0) 43 { 44 printf("类型:内部命令 "); 45 printf("删除该目录.... "); 46 printf(" "); 47 printf(" "); 48 break; 49 } 50 else if(strcmp(str,cmd[4])==0) 51 { 52 /*printf("类型:内部命令 "); 53 printf("清屏··· "); */ 54 system("cls"); 55 printf(" "); 56 printf(" "); 57 break; 58 } 59 else if(strcmp(str,cmd[5])==0) 60 { 61 printf("类型:内部命令 "); 62 printf("显示或设置日期。 "); 63 printf(" "); 64 printf(" "); 65 break; 66 } 67 else if(strcmp(str,cmd[6])==0) 68 { 69 printf(" 类型:内部命令 "); 70 printf("内部命令显示或设置系统时间。 "); 71 printf(" "); 72 printf(" "); 73 break; 74 } 75 else if(strcmp(str,cmd[7])==0) 76 { 77 printf("类型:内部命令 "); 78 printf("重命名文件··· "); 79 printf(" "); 80 printf(" "); 81 break; 82 } 83 else if(strcmp(str,cmd[8])==0) 84 { 85 printf("类型:内部命令 "); 86 printf("将至少一个文件复制到另一个位置。 "); 87 printf(" "); 88 printf(" "); 89 break; 90 } 91 else if(strcmp(str,cmd[9])==0) 92 { 93 return 0; 94 } 95 else if(strcmp(str,cmd[10])==0) 96 { 97 //printf("类型:外部命令 "); 98 printf("dir 内部命令 显示一个目录中的文件和子目录。 "); 99 printf("cd 内部命令 显示当前目录的名称或将其更改。 "); 100 printf("md 内部命令 创建一个目录。 "); 101 printf("rd 内部命令 删除目录。. "); 102 printf("cls 内部命令 清除屏幕。 "); 103 printf("dte 内部命令 显示或设置日期。 "); 104 printf("time 内部命令 内部命令显示或设置系统时间。 "); 105 printf("ren 内部命令 重新命名文件。 "); 106 printf("copy 内部命令 将至少一个文件复制到另一个位置。 "); 107 printf("help 外部命令 提供Windows命令的帮助信息。 "); 108 printf("quit 外部命令 退出命令解释程序 "); 109 printf(" "); 110 printf(" "); 111 break; 112 } 113 else if(strcmp(str,cmd[i])!=0){ 114 printf("此命令不是内部或外部命令,也不是可运行的程序或批处理文件 "); 115 printf(" "); 116 break; 117 } 118 } 119 } 120 } 121 }
四、实验总结
本次程序中仍有许多不明白的地方,只能做个简单的界面,对DOS命令更加了解