其他语言

本类阅读TOP10

·基于Solaris 开发环境的整体构思
·使用AutoMake轻松生成Makefile
·BCB数据库图像保存技术
·GNU中的Makefile
·射频芯片nRF401天线设计的分析
·iframe 的自适应高度
·BCB之Socket通信
·软件企业如何实施CMM
·入门系列--OpenGL最简单的入门
·WIN95中日志钩子(JournalRecord Hook)的使用

分类导航
VC语言Delphi
VB语言ASP
PerlJava
Script数据库
其他语言游戏开发
文件格式网站制作
软件工程.NET开发
c++模拟DOS的comand一个小程序

作者:未知 来源:月光软件站 加入时间:2005-6-5 月光软件站

#include<iostream.h>
#include<conio.h>
#include<stdio.h>
#include<stdlib.h>
#include<fstream.h>
#include<string.h>
#include<dir.h>
#define Max 7

char *cmd[Max] ;
char *str;
char init_path[80];
int find;
char *path="C:\\WINDOWS";  // 设定路径

int dir(char *p)
{
 system(p);  //调用系统命令
 return 0;
}

int cd(char *p)
{
 int i ;
 for (i=0;i<=strlen(p);i++)
  p[i]=p[i+3];
 p[i]='\0';
 chdir(p);
 return 0;
}

int del(char *p)
{
 system(p);
 return 0;
}

int copy(char *p)
{
 system(p);
 return 0;
}

int mkdir(char *p)
{
 system(p);
 return 0;
}

int cls(char *p)
{
 system(p);
 return 0;
}

int help(char *p)
{
 system(p);
 return 0;
}

int search(char *p)
{
 ifstream file;
 char filename[80];
 int circlenum;
 circlenum=0;
    do
 {   
  strcpy(filename,p);
  strcat(filename,".exe");
  file.open(filename);
  if (file)
        {  
   cout<<"this is a "<<filename<<" file"<<endl;
            system(filename);
            find=1;
            file.close();
        }
  else
  {
   strcpy(filename,p);
            strcat(filename,".com");
            file.open(filename,ios::binary);
   if (file)
   {
    cout<<"this is a "<<filename<<" file"<<endl;
    system(filename);
    find=1;
    file.close();
            }
   else
   {
    strcpy(filename,p);
    strcat(filename,".bat");
    file.open(filename);
    if (file)
    {
     cout<<"this is a "<<filename<<" file"<<endl;
     system(filename);
     find=1;
     file.close();
    }
   }
  }
  if (circlenum==1)  
  {
   chdir(init_path);
   break;
  }
  if (find)
   break;
  else
  { 
   ++circlenum;
   chdir(path);
  }
 }
 while(circlenum<=1);
  if (!find)
   cout<<"bad cmd or file name"<<endl;
 return find;
}

int main()
{
 cmd[0]="dir";
    cmd[1]="cd";
    cmd[2]="del";
    cmd[3]="mkdir";
    cmd[4]="copy";
 cmd[5]="cls";
 cmd[6]="help";
    char a[80];
    char b[80];
    int i,length;
 do
 {  
  for (i=0;i<80;i++)
   b[i]=' ';
  getcwd(init_path,80);  //保存当前路径
  cout<<init_path<<'>';
  gets(a);  //读入命令
  i=0;
  while ((a[i]!=' ')&&(a[i]!='\n'))
  {
   b[i]=a[i];
   i++;
  } //把字符命令存放在数组b中
  if (a[i]==' ')  
  {
   b[i]='\0';
  }
  str=b;
  find=0;
  if (strcmp(str,"exit")==0)
   break;
  for (i=0;i<=Max;i++)
  {
   if (strcmp(str,cmd[i])==0)
    switch(i)        // 判断是哪个内部命令
    {
     case 0:  dir(a); find=1; break;
     case 1:  cd(a); find=1; break;
     case 2:  del(a); find=1; break;
     case 3:  mkdir(a); find=1; break;
     case 4:  copy(a); find=1; break;
     case 5:  cls(a); find=1; break;
     case 6:  help(a); find=1; break;
    }
   if (find)  break;
  }
  if (!find)  
   search(str);
 }
 while(strcmp(str,"exit")!=0);
 return 0;
}




相关文章

相关软件




月光软件源码下载编程文档电脑教程网站优化网址导航网络文学游戏天地生活休闲写作范文安妮宝贝站内搜索
电脑技术编程开发网络专区谈天说地情感世界游戏元素分类游戏热门游戏体育运动手机专区业余爱好影视沙龙
音乐天地数码广场教育园地科学大观古今纵横谈股论金人文艺术医学保健动漫图酷二手专区地方风情各行各业

月光软件站·版权所有