实验一  命令解释程序的编写(两周内)

一、目的和要求

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.PC微机

2.Windows 操作系统

3.C/C++程序开发集成环境

 #include<stdio.h>
char cmd[][]={"dir","cd","md","rd","cls","date","time","ren","cope","help","quit"};
char str[];
int i;
main()
{
printf("Microsoft Windows [版本 6.1.7601]\n");
printf("版权所有 <c> 2009 Microsoft Corporation。保留所有权利\n\n");
while(){
printf("C:\Users\Administrator>");
gets(str);
for(i=;i<;i++)
{
if(strcmp(str,cmd[])==)
{
printf("'dir'内部命令输入正确!\n");
printf("该命令作用是:显示一个目录中的文件和子目录。\n\n\n");
break;
}
if(strcmp(str,cmd[])==)
{
printf("'cd'内部命令输入正确!\n");
printf("该命令作用是:显示当前目录的名称或将其更改。\n\n\n"); break;
}
if(strcmp(str,cmd[])==)
{
printf("'md'内部命令输入正确!\n");
printf("该命令作用是:创建一个目录。\n\n\n"); break;
}
if(strcmp(str,cmd[])==)
{
printf("'rd'内部命令输入正确!\n");
printf("该命令作用是:删除目录。\n\n\n"); break;
}
if(strcmp(str,cmd[])==)
{
printf("'cls'内部命令输入正确!\n");
printf("该命令作用是:清除屏幕。\n\n\n"); break;
}
if(strcmp(str,cmd[])==)
{
printf("'date'内部命令输入正确!\n");
printf("该命令作用是:显示或设置日期。\n\n\n"); break;
}
if(strcmp(str,cmd[])==)
{
printf("'time'内部命令输入正确!\n");
printf("该命令作用是:内部命令显示或设置系统时间。\n\n\n"); break;
}
if(strcmp(str,cmd[])==)
{
printf("'ren'内部命令输入正确!\n");
printf("该命令作用是:重新命名文件。\n\n\n"); break;
}
if(strcmp(str,cmd[])==)
{
printf("'cope'内部命令输入正确!\n");
printf("该命令作用是:将至少一个文件复制到另一个位置。\n\n\n");
return ;
break;
}
if(strcmp(str,cmd[])==)
{
printf("类型:外部命令\n");
printf("有关某个命令的详细信息,请键入 HELP 命令名\n");
printf("dir\t内部命令 显示一个目录中的文件和子目录。\n");
printf("cd\t内部命令 显示当前目录的名称或将其更改。\n");
printf("md\t内部命令 创建一个目录。\n");
printf("rd\t内部命令 删除目录。.\n");
printf("cls\t内部命令 清除屏幕。\n");
printf("date\t内部命令 显示或设置日期。\n");
printf("time\t内部命令 内部命令显示或设置系统时间。\n");
printf("ren\t内部命令 重新命名文件。\n");
printf("cope\t内部命令 将至少一个文件复制到另一个位置。\n");
printf("help\t外部命令 提供Windows命令的帮助信息。\n");
printf("quit\t外部命令 退出命令解释程序。\n\n\n");
break;
}
if(strcmp(str,cmd[])==)
{
printf("'quit'外部命令输入正确!\n");
printf("该命令作用是:退出命令解释程序。\n\n\n");
exit();
break;
}
if(strcmp(str,cmd[i])!=)
{
printf("此命令不是内部或外部命令,也不是可运行的程序或批处理文件。\n\n\n");
break;
}
}
}
}

操作系统cmd的更多相关文章

  1. 操作系统cmd算法

    实验一  命令解释程序的编写(两周内) 一.目的和要求 1. 实验目的 (1)掌握命令解释程序的原理: (2)*掌握简单的DOS调用方法: (3)掌握C语言编程初步. 2.实验要求 编写类似于DOS, ...

  2. 磁盘操作系统 cmd命令

    DOS CMD :磁盘操作系统 不区分大小写 **cd \ 根目录 cls 清空屏幕 dir 显示目录 d: 进入D盘 cd 进入目录命令 dir 查看当前目录的文件与目录 del 删除文件 del ...

  3. Grails笔记一:windows8.1操作系统cmd下grails命令无效

    最近决定使用intellij idea工具来开发基于Grails框架的应用程序,,在安装好jdk 1.7以及配置好jdk和grails环境变量后进行grails测试,在win8.1的命令行窗口中输入以 ...

  4. 0324操作系统cmd功能的扩展

    需求:1.实现清屏功能 2.实现不区分大小写功能 3.添加功能能添加新的命令符 设计:1.使用system("cls")清屏. 2.使用strlwr()函数把大写都变成小写 3.( ...

  5. 操作系统 cmd mini OS

    #include <stdio.h>#include <stdlib.h>#include <string.h> void word(char *a){ if(st ...

  6. 设计模式(六):控制台中的“命令模式”(Command Pattern)

    今天的博客中就来系统的整理一下“命令模式”.说到命令模式,我就想起了控制台(Console)中的命令.无论是Windows操作系统(cmd.exe)还是Linux操作系统(命令行式shell(Comm ...

  7. (转)使用SQLCMD在SQLServer执行多个脚本

    概述: 作为DBA,经常要用开发人员提供的SQL脚本来更新正式数据库,但是一个比较合理的开发流程,当提交脚本给DBA执行的时候,可能已经有几百个sql文件,并且有执行顺序,如我现在工作的公司,十几个客 ...

  8. 使用SQLCMD在SQLServer执行多个脚本

    原文:使用SQLCMD在SQLServer执行多个脚本 概述: 作为DBA,经常要用开发人员提供的SQL脚本来更新正式数据库,但是一个比较合理的开发流程,当提交脚本给DBA执行的时候,可能已经有几百个 ...

  9. 使用SQLCMD在SQLServer执行多个脚本 转载

    出处不明 概述: 作为DBA,经常要用开发人员提供的SQL脚本来更新正式数据库,但是一个比较合理的开发流程,当提交脚本给DBA执行的时候,可能已经有几百个sql文件,并且有执行顺序,如我现在工作的公司 ...

随机推荐

  1. 使用docker-compose运行微服务项目#eureka+config+auth+gateway+module

    微服务架构中我们使用了必须的四个组件,eureka config gateway auth 其中config依赖eureka,auth依赖前两者,gateway又依赖auth 这样就确定了四个组件的启 ...

  2. python paramiko模块和多线程讲解

    1.paramiko 实现ssh 登录 import paramiko # 实现ssh登录 ssh_client = paramiko.SSHClient() ssh_client.set_missi ...

  3. PTA(BasicLevel)-1006换个格式输出整数

      一  换格式输出整数 用字母 B 来表示“百”.字母 S 表示“十”,用 12...n 来表示不为零的个位数字 n(<10),换个格式来输出任一个不超过 3 位的正整数.例如 234 应该被 ...

  4. 树莓派 raspberry系统 VNC View 连接 Cannot currently show the desktop 错误解决

    https://www.raspberrypi.org/forums/viewtopic.php?t=216737 我是因为空间不够

  5. C#的Dispose模式复习

    http://www.cnblogs.com/DebugLZQ/archive/2012/08/28/2659189.html http://www.cnblogs.com/tsoukw/archiv ...

  6. flex Datagrid checkbox

    <?xml version="1.0" encoding="utf-8"?><!-- http://blog.flexexamples.com ...

  7. 20155306 实验一《Java开发环境的熟悉》实验报告

    实验一 Java开发环境的熟悉(Linux + Eclipse) 实验内容 1.使用JDK编译.运行简单的Java程序: 2.使用Eclipse 编辑.编译.运行.调试Java程序. 实验要求 1. ...

  8. 20155338 2016-2017-2《Java程序设计》实验四Android程序开发实验报告

    2016-2017-2 20155338 <Java程序设计>实验四Android程序开发实验报告 实验过程及成果展示 1.修改res目录下的layout文件夹中的activity_mai ...

  9. c++静态变量

    静态变量 一.静态变量 static关键字 static int i; 二.静态变量的运用 .计算函数被调用次数 .返回指针 第45课中有这么一段 int* square3(int *x) { int ...

  10. 【LOJ121】「离线可过」动态图连通性

    [LOJ121]「离线可过」动态图连通性 题面 LOJ 题解 线段树分治的经典应用 可以发现每个边出现的时间是一个区间 而我们每个询问是一个点 所以我们将所有边的区间打到一颗线段树上面去 询问每个叶子 ...