操作系统--命令解释程序

Posted 01蓝叶

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了操作系统--命令解释程序相关的知识,希望对你有一定的参考价值。

#include<stdio.h>
#define n 11
typedef struct node{
    char name[20];
    char use[100];
    char pro[20];
}DOS;

void Input(DOS dos[])
{
    strcpy(dos[0].name,"DIR");
    strcpy(dos[0].use,"显示一个目录中的文件和目录。");
    strcpy(dos[0].pro,"内部命令");

    strcpy(dos[1].name,"ED");
    strcpy(dos[1].use,"显示当前目录的名称或将其修改。");
    strcpy(dos[1].pro,"内部命令");

    strcpy(dos[2].name,"MD");
    strcpy(dos[2].use,"创建一个目录。");
    strcpy(dos[2].pro,"内部命令");

    strcpy(dos[3].name,"RD");
    strcpy(dos[3].use,"删除目录。");
    strcpy(dos[3].pro,"内部命令");

    strcpy(dos[4].name,"CLS");
    strcpy(dos[4].use,"清除屏幕。");
    strcpy(dos[4].pro,"内部命令");

    strcpy(dos[5].name,"DATE");
    strcpy(dos[5].use,"显示或设置日期。");
    strcpy(dos[5].pro,"内部命令");

    strcpy(dos[6].name,"TIME");
    strcpy(dos[6].use,"内部命令显示或设置系统时间。");
    strcpy(dos[6].pro,"内部命令");

    strcpy(dos[7].name,"REN");
    strcpy(dos[7].use,"重新命名文件。");
    strcpy(dos[7].pro,"内部命令");

    strcpy(dos[8].name,"COPE");
    strcpy(dos[8].use,"将至少一个文件复制到另一个位置。");
    strcpy(dos[8].pro,"内部命令");

    strcpy(dos[9].name,"HELP");
    strcpy(dos[9].use,"提供Windows命令的帮助信息。");
    strcpy(dos[9].pro,"外部命令");

    strcpy(dos[10].name,"QUIT");
    strcpy(dos[10].use,"退出命令解释程序。");
    strcpy(dos[10].pro,"外部命令");

}

//退出系统
void Exit(int a)
{
    if(a==0)
        Exit(0);
}

void Choose(char *str[],DOS dos[])
{    
    int i,j;
    while(1)
    {
        printf("C:\\Documents and Settings\\hskd>");
        gets(str);
        strupr(str);    //小写转换成大写
        for(j=0;j<n;j++)
        {
            if(strcmp(str,dos[9].name)==0)
            {
                printf("有关某个命令的详细信息,请输入 HELP 命令名\n");
                for(i=0;i<n;i++)
                    printf("%s\t%s\n",dos[i].name,dos[i].use);
                printf("\n有关工具的详细信息,请参阅联机帮助中的命令行参考。\n\n");
                break;
            }
            else if(strcmp(str,dos[10].name)==0)
            {
                Exit(0);
                break;
            }
            else if(strcmp(str,dos[j].name)==0&&strcmp(str,dos[9].name)!=0&&strcmp(str,dos[10].name)!=0)
            {
                printf("‘%s‘\t%s输入正确!\n该命令的作用是:%s\n\n",dos[j].name,dos[j].pro,dos[j].use);
                break;
            }
            else
            {
                strlwr(str); //大写转换成小写
                printf("‘%s‘ 不是内部或外部命令,也不是可运行的程序\n或批处理文件\n\n",str);
                break;
            }
        }
    }
}

main()
{
    DOS dos[n];
    char *str[11];
    printf("Microsoft Window XP [版本 5.1.2600]\n");
    printf("<C> 版权所有 1985-2001 Microsoft Corp.\n\n");
    Input(dos);
    Choose(str,dos);
}

技术分享

以上是关于操作系统--命令解释程序的主要内容,如果未能解决你的问题,请参考以下文章

VSCode自定义代码片段15——git命令操作一个完整流程

有趣的 C++ 代码片段,有啥解释吗? [复制]

需要对特定 R 代码片段的解释

C++ 解释器/控制台/片段编译器

有人可以解释以下 R 代码片段吗? [关闭]

使用 pdb 进行调试