亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? s_shell.c

?? shell 程序要求實現的shell支持以下內部命令: 1. Batch Processing 如果shell啟動帶有一個文件名作為參數
?? C
字號:
#include <string.h>
#include <stdlib.h>
#include <conio.h>
#include <stdio.h>
#include <dir.h>
#include <dos.h>
#include <time.h>

/*定義全局變量*/
char root_dir[3];
char pre_dir[255];
char *cmd_line[255];
char curuser[10];

struct userinf
{
    char username[10];
    char userpass[10];
};

/*函數申明*/
void init();
int login();
int getcmd();
void dir();
void cd();
void clear();
void newdir();
void deldir();
void del();
void copy();
void cut();
void account();
void help();

main()
{
    init();
    while(1)/* 消息循環 */
    {
        switch(getcmd())
        {
            case 0:
                help();
                break;
            case 1:
                dir();
                break;
            case 2:
                cd();
                break;
            case 3:
                newdir();
                break;
            case 4:
                deldir();
                break;
            case 5:
                del();
                break;
            case 6:
                copy();
                break;
            case 7:
                cut();
                break;
            case 8:
                account();
                break;
        }
    }
}

void init()/* 程序初始化 */
{
    if(login()==0)
    {
        exit(0);
    }
    strcpy(pre_dir,"C:\\");/*設定當前目錄*/
    clear();/* 清屏 */
    printf("S Shell-Above Windows XP [Ver 1.0]\n");
    printf("(C) Copyright 2007 stars_625.\n\n");
    getchar();/* 清空緩沖區 */
}

int login()/* 程序登陸 */
{
    char name[10];
    char pass[10];
    int logintime=3;
    FILE *fp;
    struct userinf inf;
    while(logintime>0)/* 登陸錯誤超過三次自動退出 */
    {
        printf("Login:");
        scanf("%s",name);
        printf("Password:");
        scanf("%s",pass);
        if((fp=fopen("inf.dll","r"))==NULL)
        {
            printf("Can't open inf.dll file!\n");
            printf("Press any key to exit...");
            getch();
            exit(0);
        }
        while(fread(&inf,sizeof(inf),1,fp)==1 && strcmp(inf.username,name)!=0)
        {
        }
        fclose(fp);
        if(strcmp(inf.username,name)==0)
        {
            if(strcmp(inf.userpass,pass)==0)
            {
                strcpy(curuser,inf.username);
                clear();
                return 1;
            }
            else
            {
                printf("Login error, Press any key to relogin!\n");
                getch();
                clear();
            }
        }
        else
        {
            printf("The user is not exist, Press any key to relogin!\n");
            getch();
            clear();
        }
        logintime--;
    }
    printf("Login error above three times, Press any key to exit!");
    getch();
    return 0;
}

int getcmd()/* 獲得命令 */
{
    int i=0,j=0,k=0;
    char buf[255];
    printf("%s>",pre_dir);/* 打印提示符 */
    fgets(buf, 255, stdin);
    cmd_line[j] = calloc(255, sizeof(char));
    while (buf[i] != '\n' && buf[i] != '\0')/* 命令分析 */
    { 
        if (buf[i] != ' ')
        { 
            cmd_line[j][k] = buf[i];
            ++k; 
        } 
        else         
        { 
            cmd_line[j + 1] = calloc(255, sizeof(char));
            k = 0; 
            ++j; 
        }
        ++i; 
    }
    cmd_line[j + 1]=0;
    if(strcmp(cmd_line[0],"exit")==0)
    {
        exit(0);
    }
    else if(strcmp(cmd_line[0],"/?")==0 || strcmp(cmd_line[1],"/?")==0)
    {
        return 0;
    }
    else if(strcmp(cmd_line[0],"dir")==0)
    {
        return 1;
    }
    else if(strcmp(cmd_line[0],"cd")==0)
    {
        return 2;
    }
    else if(strcmp(cmd_line[0],"newdir")==0)
    {
        return 3;
    }
    else if(strcmp(cmd_line[0],"deldir")==0)
    {
        return 4;
    }
    else if(strcmp(cmd_line[0],"del")==0)
    {
        return 5;
    }
    else if(strcmp(cmd_line[0],"copy")==0)
    {
        return 6;
    }
    else if(strcmp(cmd_line[0],"cut")==0)
    {
        return 7;
    }
    else if(strcmp(cmd_line[0],"account")==0)
    {
        return 8;
    }
    else if(cmd_line[0][1]==':')
    {
        strcpy(pre_dir,cmd_line[0]);
        strcat(pre_dir,"\\");
    }
    else if(strcmp(cmd_line[0],"clear")==0)
    {
        clear();
    }
    else
    {
        printf("The command is not supported!\n");
    }
}

void dir()/* 列出文件及文件夾 */
{
    struct ffblk ff;
    char filepath[255];
    strcpy(filepath,pre_dir);
    findfirst(strcat(filepath,"*.*"),&ff,FA_DIREC);
    if(ff.ff_attrib==16)
    {
        printf("<DIR>\t");
    }
    else
    {
        printf("    \t");
    }
    printf("%s\n",ff.ff_name);
    while(findnext(&ff)==0)
    {
        if(ff.ff_attrib==16)
        {
            printf("<DIR>\t");
        }
        else
        {
            printf("    \t");
        }
        printf("%s\n",ff.ff_name);
    }
}

void cd()/* 改變當前目錄 */
{
    int i=0;
    struct ffblk ff;
    char filepath[255];
    strcpy(filepath,pre_dir);
    if(strcmp(cmd_line[1],"..")==0)/* 返回上一層目錄 */
    {
        while(filepath[i]!='\0')
        {
            i++;
        }
        if(filepath[i-2]!=':')
        {
            i=i-2;
            while(filepath[i]!='\\' && i>=2)
            {
                i--;
            }
            filepath[i+1]='\0';
            strcpy(pre_dir,filepath);
        }
    }
    else if(strcmp(cmd_line[1],"\\")==0)/*返回根目錄*/
    {
        while(filepath[i]!='\\')
        {
            i++;
        }
        filepath[i+1]='\0';
        strcpy(pre_dir,filepath);
    }
    else
    {
        findfirst(strcat(filepath,"*.*"),&ff,FA_DIREC);
        while(strcmp(ff.ff_name,cmd_line[1])!=0)
        {
            if(findnext(&ff)!=0)
            {
                break;
            }
        }
        if(strcmp(ff.ff_name,cmd_line[1])==0)
        {
            strcat(pre_dir,cmd_line[1]);
            strcat(pre_dir,"\\");
        }
        else
        {
            printf("Can't find the file!\n");
        }
    }
}

void clear()
{
    clrscr();
}

void newdir()
{
    char filepath[255];
    strcpy(filepath,pre_dir);
    if(mkdir(strcat(filepath,cmd_line[1]))==0)
    {
        printf("Make dir '%s' successfully!\n",cmd_line[1]);
    }
    else
    {
        printf("Make dir error!\n");
    }
}

void deldir()
{
    char filepath[255];
    strcpy(filepath,pre_dir);
    if(rmdir(strcat(filepath,cmd_line[1]))==0)
    {
        printf("Delete dir '%s' successfully!\n",cmd_line[1]);
    }
    else
    {
        printf("Delete dir error!\n");
    }
}

void del()
{
    char filepath[255];
    strcpy(filepath,pre_dir);
    if(unlink(strcat(filepath,cmd_line[1]))==0)
    {
        printf("Delete %s successfully!\n",cmd_line[1]);
    }
    else
    {
        printf("Delete error!\n");
    }
}

void copy()
{
    char filepath[255];
    char sourcepath[255];
    char aimpath[255];
    FILE *newfp;
    FILE *oldfp;
    char ch;
    strcpy(filepath,pre_dir);
    if(cmd_line[1][1]!=':')
    {
        strcpy(sourcepath,filepath);
        strcat(sourcepath,cmd_line[1]);
    }
    else
    {
        strcpy(sourcepath,cmd_line[1]);
    }
    if(cmd_line[2][1]!=':')
    {
        strcpy(aimpath,filepath);
        strcat(aimpath,cmd_line[2]);
    }
    else
    {
        strcpy(aimpath,cmd_line[2]);
    }
    if((oldfp=fopen(sourcepath,"r"))==NULL)
    {
        printf("Can't open old file!\n");
    }
    if((newfp=fopen(aimpath,"w"))==NULL)
    {
        printf("Can't creat new file!\n");
    }
    while((ch=fgetc(oldfp))!=EOF)
    {
        fputc(ch,newfp);
    }
    fclose(oldfp);
    fclose(newfp);
    printf("Copy from %s to %s successfully!\n",sourcepath,aimpath);
}

void cut()
{
    char filepath[255];
    char sourcepath[255];
    char aimpath[255];
    FILE *newfp;
    FILE *oldfp;
    char ch;
    strcpy(filepath,pre_dir);
    if(cmd_line[1][1]!=':')
    {
        strcpy(sourcepath,filepath);
        strcat(sourcepath,cmd_line[1]);
    }
    else
    {
        strcpy(sourcepath,cmd_line[1]);
    }
    if(cmd_line[2][1]!=':')
    {
        strcpy(aimpath,filepath);
        strcat(aimpath,cmd_line[2]);
    }
    else
    {
        strcpy(aimpath,cmd_line[2]);
    }
    if((oldfp=fopen(sourcepath,"r"))==NULL)
    {
        printf("Can't open old file!\n");
    }
    if((newfp=fopen(aimpath,"w"))==NULL)
    {
        printf("Can't creat new file!\n");
    }
    while((ch=fgetc(oldfp))!=EOF)
    {
        fputc(ch,newfp);
    }
    fclose(oldfp);
    fclose(newfp);
    if(unlink(sourcepath)==0)
    {
        printf("Cut from %s to %s successfully!\n",sourcepath,aimpath);
    }
    else
    {
        printf("Delete old file error!\n");
    }

}

void account()
{
    FILE *fp;
    struct userinf inf;
    if(strcmp(cmd_line[1],"/add")==0)
    {
        if((fp=fopen("inf.dll","r+"))==NULL)
        {
            printf("Can't open inf.dll file!\n");
            printf("Press any key to exit...");
            getch();
        }
        while(fread(&inf,sizeof(inf),1,fp)==1 && strcmp(inf.username,cmd_line[2])!=0)
        {
        }
        if(strcmp(inf.username,cmd_line[2])==0)
        {
            printf("Create user error, the user is exist!\n");
        }
        else
        {
            strcpy(inf.username,cmd_line[2]);
            strcpy(inf.userpass,cmd_line[3]);
            if(fwrite(&inf,sizeof(inf),1,fp)==1)
            {
                printf("Create user %s successfully!\n",inf.username);
            }
            else
            {
                printf("Create user error!\n");
            }
        }
        fclose(fp);
    }
    else if(strcmp(cmd_line[1],"/edit")==0)
    {
        if((fp=fopen("inf.dll","r+"))==NULL)
        {
            printf("Can't open inf.dll file!\n");
            printf("Press any key to exit...");
            getch();
        }
        while(fread(&inf,sizeof(inf),1,fp)==1 && strcmp(inf.username,cmd_line[2])!=0)
        {
        }
        if(strcmp(inf.username,cmd_line[2])!=0)
        {
            printf("Edit user error, the user is not exist!\n");
        }
        else
        {
            strcpy(inf.username,cmd_line[2]);
            strcpy(inf.userpass,cmd_line[3]);
            fseek(fp,-20L,1);
            if(fwrite(&inf,sizeof(inf),1,fp)==1)
            {
                printf("Edit user %s successfully!\n",inf.username);
            }
            else
            {
                printf("Edit user error!\n");
            }
        }
        fclose(fp);
    }
    else
    {
        printf("Please enter correct parameter,type /? for help!\n");
    }
}

void help()
{
    if(strcmp(cmd_line[0],"/?")==0)
    {
        printf("The list of commands.\n\n");
        printf("  dir\t\tList the files and dirs.\n");
        printf("  cd\t\tChange the dir.\n");
        printf("  clear\t\tClear the screen.\n");
        printf("  newdir\tMake a dir.\n");
        printf("  deldir\tDelete a dir.\n");
        printf("  del\t\tDelete a file.\n");
        printf("  copy\t\tCopy a file from a place to another.\n");
        printf("  cut\t\tCut a file from a place to another.\n");
        printf("  account\tAdd edit or delete a account.\n\n");
        printf("For more information add type /? after command.\n\n");
        printf("Notice:All the command line is capitalization distinction!\n\n");
    }
    else
    {
        if(strcmp(cmd_line[0],"dir")==0)
        {
            printf("List the files and dirs.\n\n");
            printf("dir path\n\n");
            printf("  path\t\tThe dir you want to list.\n");
            printf("  \t\tif path is NULL then list the current dir.\n\n");
        }
        else if(strcmp(cmd_line[0],"cd")==0)
        {
            printf("Change the dir.\n\n");
            printf("cd < \\ | .. | path>\n\n");
            printf("  \\\t\tReturn to the root dir.\n");
            printf("  ..\t\tReturn to the parent dir.\n");
            printf("  path\t\tThe dir you want change to.\n\n");
        }
        else if(strcmp(cmd_line[0],"clear")==0)
        {
            printf("Clear the screen.\n\n");
            printf("clear\n\n");
        }
        else if(strcmp(cmd_line[0],"newdir")==0)
        {
            printf("Make a dir.\n\n");
            printf("newdir path\n\n");
            printf("  path\t\tThe dir path which you want to create.\n\n");
        }
        else if(strcmp(cmd_line[0],"deldir")==0)
        {
            printf("Delete a dir.\n\n");
            printf("deldir path\n\n");
            printf("  path\t\tThe dir path which you want to delete.\n\n");
        }
        else if(strcmp(cmd_line[0],"del")==0)
        {
            printf("Delete a file.\n\n");
            printf("del filepath\n\n");
            printf("  filepath\tThe filepath which you want to delete.\n\n");
        }
        else if(strcmp(cmd_line[0],"copy")==0)
        {
            printf("Copy a file from a place to another.\n\n");
            printf("copy source aim\n\n");
            printf("  source\tThe source file path.\n");
            printf("  aim\t\tThe aim file path.\n\n");
        }
        else if(strcmp(cmd_line[0],"cut")==0)
        {
            printf("Cut a file from a place to another.\n\n");
            printf("cut source aim\n\n");
            printf("  source\tThe source file path.\n");
            printf("  aim\t\tThe aim file path.\n\n");
        }
        else if(strcmp(cmd_line[0],"account")==0)
        {
            printf("Add edit or delete a account.\n\n");
            printf("account < /add | /edit | /del > username userpass\n\n");
            printf("  username\tThe account name.\n");
            printf("  userpass\tThe account password.\n");
            printf("  /add\t\tAdd a account.\n");
            printf("  /edit\t\tEdit a account.\n");
            printf("  /del\t\tDelete a account.\n\n");
        }
        else
        {
            printf("The command is not supported!\n");
        }
    }
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲靠逼com| 亚洲综合丁香婷婷六月香| 91色九色蝌蚪| 免费成人你懂的| 亚洲欧洲99久久| 欧美精品一区二区三区四区 | 337p亚洲精品色噜噜| 国产丶欧美丶日本不卡视频| 三级久久三级久久久| 国产精品久久一卡二卡| 精品久久久久久亚洲综合网| 91福利在线看| 不卡av免费在线观看| 久久er精品视频| 午夜精品福利视频网站| 亚洲欧美日韩在线不卡| 精品国产乱子伦一区| 欧美精品丝袜中出| 91免费版在线| 成人精品视频一区二区三区尤物| 免费观看在线色综合| 亚洲妇女屁股眼交7| 亚洲精品成a人| 中文字幕亚洲不卡| 中文字幕在线一区免费| 国产日韩欧美a| 亚洲精品一区二区精华| 欧美一区二区成人6969| 欧美精品在线观看播放| 欧美日韩国产一级片| 91国偷自产一区二区开放时间 | 日韩女优视频免费观看| 欧美欧美欧美欧美首页| 91久久免费观看| 91老师片黄在线观看| 91女神在线视频| 99久久777色| 99re在线视频这里只有精品| 成人国产一区二区三区精品| 成人午夜视频在线观看| 国产v综合v亚洲欧| 成人福利在线看| av一区二区三区四区| 99精品一区二区| 91视频国产资源| 欧美自拍偷拍一区| 欧美日韩大陆在线| 91麻豆精品国产自产在线| 欧美一区二区三区在线观看| 国产视频一区在线播放| 久久久99精品久久| 国产精品色噜噜| 亚洲人成亚洲人成在线观看图片 | 精品欧美一区二区在线观看| 精品剧情在线观看| 久久综合999| 国产精品福利影院| 一区二区三区不卡视频在线观看| 亚洲国产另类精品专区| 日韩av高清在线观看| 黄一区二区三区| 成人看片黄a免费看在线| 色综合久久中文综合久久牛| 欧美精选午夜久久久乱码6080| 91精品国产91久久综合桃花| 精品乱码亚洲一区二区不卡| 国产欧美日韩另类一区| 亚洲卡通欧美制服中文| 日本视频免费一区| 国产精品一二三在| 日本韩国欧美国产| 日韩欧美国产一区二区三区| 欧美激情一区二区在线| 亚洲国产裸拍裸体视频在线观看乱了| 毛片不卡一区二区| 波多野结衣中文字幕一区| 欧美午夜视频网站| 久久久无码精品亚洲日韩按摩| **网站欧美大片在线观看| 婷婷夜色潮精品综合在线| 国产高清亚洲一区| 欧美日韩一卡二卡| 久久久久久久网| 亚洲自拍偷拍麻豆| 国产精品亚洲人在线观看| 欧美中文一区二区三区| 久久综合九色综合97_久久久| 亚洲精品国产无套在线观| 另类专区欧美蜜桃臀第一页| 91看片淫黄大片一级在线观看| 日韩一级视频免费观看在线| 中文字幕一区二区视频| 美脚の诱脚舐め脚责91| 97se亚洲国产综合自在线观| 日韩女优av电影| 一区二区三区加勒比av| 国产成人av影院| 欧美一区二区视频观看视频| 亚洲精品视频在线观看网站| 国产精品中文欧美| 欧美一区二区三区视频免费播放| 国产精品成人在线观看| 国产一区二区三区美女| 在线不卡中文字幕| 亚洲激情六月丁香| 成人午夜视频网站| 久久久午夜精品理论片中文字幕| 首页国产欧美久久| 色婷婷狠狠综合| 国产精品久久二区二区| 激情综合五月天| 91精品国产综合久久精品麻豆| 亚洲色图在线播放| 成人蜜臀av电影| 久久男人中文字幕资源站| 奇米色一区二区三区四区| 欧美性猛交xxxx乱大交退制版| 国产精品蜜臀av| 欧美日韩国产综合一区二区三区| 中文字幕国产一区| 国产在线播放一区三区四| 91精品欧美福利在线观看| 亚洲高清免费视频| 色综合久久中文综合久久97 | 中文字幕欧美三区| 国产一区在线视频| 日韩三级在线观看| 青娱乐精品视频| 91精品国产手机| 日本免费新一区视频| 欧美精品亚洲二区| 免费高清在线一区| 91精品国产乱码久久蜜臀| 日韩av网站免费在线| 欧美一区二区视频在线观看2022 | 波多野结衣中文字幕一区二区三区| 精品福利一区二区三区 | 国产成人午夜99999| 久久精品综合网| 国产高清一区日本| 中文一区二区完整视频在线观看| 国产99久久久国产精品潘金网站| 久久久久国产精品麻豆| 国产成人av自拍| 成人欧美一区二区三区白人 | 欧美日韩精品是欧美日韩精品| 亚洲影视在线播放| 欧美丝袜丝交足nylons图片| 亚洲国产精品一区二区尤物区| 欧美日韩免费高清一区色橹橹| 午夜一区二区三区视频| 欧美一区二区在线观看| 国产又粗又猛又爽又黄91精品| 国产女主播一区| 99re8在线精品视频免费播放| 亚洲精品乱码久久久久久久久 | 国产欧美一区二区精品忘忧草| 国产91高潮流白浆在线麻豆| 中文字幕中文字幕中文字幕亚洲无线| 99在线精品观看| 亚洲国产成人91porn| 欧美一级一区二区| 国产91丝袜在线播放九色| 亚洲人成在线观看一区二区| 欧美精品自拍偷拍动漫精品| 狠狠色丁香久久婷婷综合_中| 国产精品色在线观看| 欧美在线观看一二区| 精品夜夜嗨av一区二区三区| 国产精品免费网站在线观看| 精品视频免费在线| 国产在线视视频有精品| 亚洲免费伊人电影| 日韩一区二区三区在线视频| 北条麻妃一区二区三区| 舔着乳尖日韩一区| 亚洲国产激情av| 欧美美女网站色| 国产成人精品免费在线| 亚洲成人一二三| 国产精品色哟哟| 日韩午夜在线影院| 99国产精品久久久久久久久久久| 日日摸夜夜添夜夜添国产精品| 国产欧美一区二区精品婷婷| 欧美片网站yy| www.久久久久久久久| 日韩制服丝袜av| 亚洲日本在线观看| 欧美精品一区二区三区一线天视频| 91麻豆福利精品推荐| 国产剧情在线观看一区二区| 精品综合免费视频观看| 一区二区三区中文免费| 久久久精品tv| 91精品国产免费| 欧美性大战xxxxx久久久| 成人免费高清在线观看| 极品少妇一区二区| 天堂精品中文字幕在线|