MinDos--操作系统

MinDos--操作系统
总结 : 本次实现的是功能是为
(1)自行定义系统提示符
(2)自定义命令集(8-10个)
(3)用户输入HELP以查找命令的帮助
(4)列出命令的功能,区分内部还是外部命令
(5)用户输入QUIT退出
(6)内部命令有dir, cd, md, rd, cls, date, time, ren, copy等。

添加了system();实现window 命令操作
添加了 参数can 用于判断命令是否带参数

不足 :带参数的命令 还不能实现 system 操作

  

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<windows.h>
#define Max 500
struct Cmd{
    char cmd[30];
    char function[500];
    cahr can;
    int post;
};
int count=0;
void Init(struct Cmd cm[Max])
{
    FILE *fp;
    if((fp=fopen("cmd.txt","a+"))==NULL)
    {
        printf("File open error!\n");
        exit(0);
    }
    while(!feof(fp)&&fgetc(fp)!=EOF)
    {
        fseek(fp,-1L,SEEK_CUR);
        fscanf(fp,"%s%s%c%d",&cm[count].cmd,&cm[count].function,&cm[count].can,&cm[count].post);
        count++;
    }
    if(fclose(fp))
    {
        printf("Can not close the file!\n");
        exit(0);
    }
}
void display(struct Cmd cm[Max])
{
    for(int i=0;i<count;i++)
    {
        printf("%-10s%s\n",strupr(cm[i].cmd),cm[i].function);
        strlwr(cm[i].cmd);
    }
}
void process(struct Cmd cm[Max])
{
    char str[10];
    printf("Microsoft Windows XP [版本 5.1.2600]\n");
    printf("(C) 版权所有 1985-2001 Microsoft Corp.\n");
    while(strcmp(str,"quit")!=0){
        printf("\nC:\\Documents and Settings\\hskd>");
        scanf("%s",str);
        strlwr(str);
        bool flag=false;
        if(strcmp(str,"help")==0)
        {
            printf("有关某个命令的详细信息,请键入 HELP 命令名\n");
            display(cm);
            flag=true;
        }else{
            for(int i=0;i<count;i++)
            {
                if(strcmp(str,cm[i].cmd)==0)
                {
                    if(cm[i].post==1)
                        printf("‘%s‘ 内部命令输入正确!\n该命令作用是:%s\n",str,cm[i].function);
                    else
                        printf("‘%s‘ 外部命令输入正确!\n该命令作用是:%s\n",str,cm[i].function);
                    //实现windwins 命令
                    system(str);
                    //判断是否带参数
                    if(cm[i].can==‘t‘)
                        printf("带参数命令\n");
                    else if(cm[i].can==‘f‘)
                        printf("不带参数命令");
                    else
                        printf("可带参数命令");
                    flag=true;
                    break;
                }
            }
            if(!flag){
                if(strcmp(str,"quit")!=0)
                    printf("‘%s‘ 不是内部或外部命令,也不是可运行的程序\n或批处理文件。\n",str);
            }
        }
    }
    printf("\n程序结束!\n\n");
}
int main()
{
    struct Cmd cm[Max];
    Init(cm);
    process(cm);
    return 0;
}
时间: 2025-01-18 08:31:06

MinDos--操作系统的相关文章

c#判断操作系统是32位还是64位

做一个c#项目时,遇到要获取操作系统位数的问题,在网上找了几个小时,都没有找到比较完整的解决方案.话不多说,直接上可以运行的代码(简单.粗暴) using System.Runtime.ConstrainedExecution; using System.Runtime.InteropServices; internal static class Win32Native { [ReliabilityContract(Consistency.WillNotCorruptState, Cer.May

使用Cobbler批量安装操作系统

个人博客地址:http://www.pojun.tech/ 欢迎访问 前言 在实际生产中,我们常常会遇到这样一种情况,就是我们需要同时安装几十甚至上百台服务器,如果我们使用U盘或者光盘的方式的话,或许老板直接就将我们辞退了.这里我们介绍一种能够实现自动化安装操作系统的方式. 我们搭建Cobbler的实验环境是基于CentOS 7.3 -1611 的基础的. 同时这个实验可以帮助你一步步的完成所有的操作,不过,如果你想自定义安装的内容的话,建议你先看本文 自定义kickstart文件 部分,以便有

China Operating System 电脑操作系统 2016全球互联网排名

韩梦飞沙  韩亚飞  [email protected]  yue31313  han_meng_fei_sha 电脑操作系统 China Operating System 2016全球互联网排名 ========

Linux操作系统文件系统基础知识详解(引用内容)

一 .Linux文件结构  文件结构是文件存放在磁盘等存贮设备上的组织方法.主要体现在对文件和目录的组织上. 目录提供了管理文件的一个方便而有效的途径. Linux使用标准的目录结构,在安装的时候,安装程序就已经为用户创建了文件系统和完整而固定的目录组成形式,并指定了每个目录的作用和其中的文件类型.                     /根目录                              ┃┏━━┳━━━┳━━━┳━━━╋━━━┳━━━┳━━━┳━━━┓┃   ┃      ┃

Linux服务器操作系统

Linux服务器操作系统 今日大纲 ●    服务器操作系统的系列.Linux的主流产品.虚拟机软件 ●    安装linux ●    linux基本命令 ●    用户管理及权限(多用户) ●    实战(搭建环境及部署web项目) ***************************************************************************************************** 1.    服务器操作系统简介 1.1    服务器操作系

IBM x3850M2 x3650M2 安装windows操作系统出错排查

最近安装服务器操作系统不顺,反复多次,不能完全确定原因,先记录下来,总有可取之处吧. 1.用引导盘安装2012.2008到最后一步出现下图,\source\setup.exe is not valid win32 application,狗屁百度都说是引导盘86.64的区别,胡扯,64位的都是这样的名称ibm_utl_sguide_9.63-win2k08_anyos_x86-64.iso,换新老版本都不行,2008r2.2012没有32之说了好像,没有想要的结果. 2.直接用windows系统

虚拟机上安装Linux操作系统

很久之前就知道虚拟机这个东西,也都在虚拟机上安装过Windows的操作系统和Linux的操作系统,但是一直都没有去做笔记. 最近还是比较有时间,就移除了前两天刚刚安装的Linux系统,重新安装一次,做一个记录. 至于虚拟机的安装就没有做详细的记录,这个跟安装其他的什么软件没什么区别. 好了.接下来就开始图文并茂的去记录一下安装Linux的操作系统的过程. 1.那么第一步肯定是要下载Linux的镜像文件,至于下载也早就下载好了.是rhel-server-6.6的,一个ISO的压缩包. 2.打开虚拟

操作系统基础知识

操作系统的分类: 批处理操作系统.分时操作系统.实时操作系统.网络操作系统.分布式操作系统.个人计算机操作系统. 批处理操作系统: 优:资源共享,自动调度,提高了资源利用率和系统分吞吐量. 劣:无交互,周转时间较长. 多道批处理程序要处理的问题:同步互斥,内存大小,使用效率,内存保护 分时系统:联机多用户交互式操作系统,中断技术,时间片轮转 优:人机交互性好,共享主机 ,用户独立性 实时操作系统:联机系统,对外部请求能够在规定的时间内完成. 特点:有限等待 有限响应 用户控制 可靠性高 出错处理

Linux体系结构-初级(查看内核,操作系统)

目录 一.Linux系统架构... 1 二.内核和操作系统的关系... 2 三.查看Linux内核... 2 1. cat /proc/version. 2 2. uname  -a. 3 四.查看Linux系统版本... 3 1. cat /etc/issue. 3 2. lsb_release -a. 3 五.查看操作系统32位 or 64位... 3 1.uname  -a. 3 2. arch. 3 3. file /sbin/init. 4 4. getconf LONG_BIT. 4

CentOS 6.5下PXE+Kickstart无人值守安装操作系统

CentOS 6.5下PXE+Kickstart无人值守安装操作系统 一.简介 1.1 什么是PXE PXE(Pre-boot Execution Environment,预启动执行环境)是由Intel公司开发的最新技术,工作于Client/Server的网络模式,支持工作站通过网络从远端服务器下载映像,并由此支持通过网络启动操作系统,在启动过程中,终端要求服务器分配IP地址,再用TFTP(trivial file transfer protocol)或MTFTP(multicasttrivia