CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  C/C++ >  C++ 语言

求救:如何用C++编写DOS命令?

楼主lazyter1(layter)2006-07-03 21:35:57 在 C/C++ / C++ 语言 提问

求救:如何用C++编写DOS命令?  
   
  即,在MSDOS   或   xp的命令提示符中,写入自己编写的命令如同DOS本身自带的外部命令一样。 问题点数:100、回复次数:8Top

1 楼winks(少爷)回复于 2006-07-03 21:44:49 得分 0

int   main(int   argc,   char*   argv[])  
   
  利用argc,argv确定参数,剩下的就要根据不同命令进行实现了。Top

2 楼du51(郁郁思扬)回复于 2006-07-03 21:46:07 得分 0

接楼上的,  
  把此程序加入环境变量..  
  Top

3 楼Veiz(理论上存在)回复于 2006-07-04 00:32:03 得分 0

systemTop

4 楼laoluo554(老罗1#)回复于 2006-07-04 00:46:43 得分 0

//   应用程序命令行处理代码范例  
  BOOL   CPwSafeApp::ParseCurrentCommandLine(CString   *psFile,   LPCTSTR   *lpPassword,   LPCTSTR   *lpKeyFile,   LPCTSTR   *lpPreSelectPath)  
  {  
  long   i;  
  BOOL   bFirst   =   TRUE;  
   
  ASSERT(psFile   !=   NULL);   if(psFile   ==   NULL)   return   FALSE;  
  psFile->Empty();  
   
  ASSERT(lpPassword   !=   NULL);   if(lpPassword   ==   NULL)   return   FALSE;  
  *lpPassword   =   NULL;  
  ASSERT(lpKeyFile   !=   NULL);   if(lpKeyFile   ==   NULL)   return   FALSE;  
  *lpKeyFile   =   NULL;  
  ASSERT(lpPreSelectPath   !=   NULL);   if(lpPreSelectPath   ==   NULL)   return   FALSE;  
  *lpPreSelectPath   =   NULL;  
   
  if(__argc   <=   1)   return   FALSE;  
   
  for(i   =   1;   i   <   (long)__argc;   i++)  
  {  
  if((_tcsnicmp(__argv[i],   _T("-pw:"),   4)   ==   0)   &&   (_tcslen(__argv[i])   >   4))  
  *lpPassword   =   &__argv[i][4];  
  else   if((_tcsnicmp(__argv[i],   _T("/pw:"),   4)   ==   0)   &&   (_tcslen(__argv[i])   >   4))  
  *lpPassword   =   &__argv[i][4];  
  else   if((_tcsnicmp(__argv[i],   _T("-keyfile:"),   9)   ==   0)   &&   (_tcslen(__argv[i])   >   9))  
  *lpKeyFile   =   &__argv[i][9];  
  else   if((_tcsnicmp(__argv[i],   _T("/keyfile:"),   9)   ==   0)   &&   (_tcslen(__argv[i])   >   9))  
  *lpKeyFile   =   &__argv[i][9];  
  else   if((_tcsnicmp(__argv[i],   _T("-preselect:"),   11)   ==   0)   &&   (_tcslen(__argv[i])   >   11))  
  *lpPreSelectPath   =   &__argv[i][11];  
  else   if((_tcsnicmp(__argv[i],   _T("/preselect:"),   11)   ==   0)   &&   (_tcslen(__argv[i])   >   11))  
  *lpPreSelectPath   =   &__argv[i][11];  
  else   if((_tcsnicmp(__argv[i],   _T("-ext:"),   5)   ==   0)   &&   (_tcslen(__argv[i])   >   5))  
  {   //   Ignore   this   parameter  
  }  
  else   if((_tcsnicmp(__argv[i],   _T("/ext:"),   5)   ==   0)   &&   (_tcslen(__argv[i])   >   5))  
  {   //   Ignore   this   parameter  
  }  
  else  
  {  
  if(bFirst   !=   TRUE)   *psFile   +=   _T("   ");  
  *psFile   +=   __argv[i];  
  bFirst   =   FALSE;  
  }  
  }  
   
  psFile->TrimLeft();   psFile->TrimRight();  
   
  if(psFile->GetLength()   ==   0)   return   FALSE;  
  if(psFile->Left(1)   ==   _T("\""))   *psFile   =   psFile->Right(psFile->GetLength()   -   1);  
  if(psFile->GetLength()   ==   0)   return   FALSE;  
  psFile->TrimLeft();   psFile->TrimRight();  
  if(psFile->GetLength()   ==   0)   return   FALSE;  
  if(psFile->Right(1)   ==   _T("\""))   *psFile   =   psFile->Left(psFile->GetLength()   -   1);  
  if(psFile->GetLength()   ==   0)   return   FALSE;  
  psFile->TrimLeft();   psFile->TrimRight();  
  if(psFile->GetLength()   ==   0)   return   FALSE;  
   
  return   TRUE;  
  }  
  要想你的应用程序在命令行中可用,还要把自己的程序加入到环境变量中。  
  Top

5 楼jixingzhong(瞌睡虫·星辰)回复于 2006-07-04 09:01:42 得分 0

编辑你的程序,编译连接,   然后添加   path   等信息到你的系统环境变量中,  
  就可以在   命令行中使用了   ....Top

6 楼the_other_door()回复于 2006-07-04 13:29:36 得分 0

msdos和xp是两个完全不同的环境,前者是MZ格式的可执行文件,而在后者下运行的"dos"(实际应当称为nt控制台程序)是一个纯正的win32   pe格式文件,在后者中可以调用几乎所有的不涉及gdi的api。Top

7 楼the_other_door()回复于 2006-07-04 13:30:02 得分 0

msdos和xp是两个完全不同的环境,前者是MZ格式的可执行文件,而在后者下运行的"dos"(实际应当称为nt控制台程序)是一个纯正的win32   pe格式文件,在后者中可以调用几乎所有的不涉及gdi的api。Top

8 楼rollor_phoe(柔枫)回复于 2006-07-04 14:23:42 得分 0

将编译和连接成功的exe文件放在系统文件夹中,就可以在运行中直接输入你的程序名来执行了,不需要输入路径。  
  系统文件夹指c:\windows,c:\windows\system32等等。  
  如果你没有将文件放在系统文件夹中,也可以将你的文件路径加入环境变量中。  
  Top

相关问题

关键词

得分解答快速导航

  • 帖主:lazyter1

相关链接

  • C/C++ Blog
  • C/C++类图书
  • C/C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo