用c++运行命令行
Run a command line with c++
我读过几篇关于在c++中运行命令行的文章,但是没有一篇能达到我的目的:当我使用dllfile时,在外部应用程序中没有显示控制台。
我的问题是:我想使用一个从数据库中挑选文件的进程。例如:获取文件XYZ。并将其复制到目录MyDirXYZ,我将使用命令行"MyDataGenerator XYZ。xyz C: MyDirXYZ"。
我使用Visual studio让我们用下面的例子来澄清这个问题,我试图在c++中用"mkdir"创建一个目录,而不使用CreateDirectory:
第一个方法:
std::string lDirectory("c:\MyDummyDir")
std::string lCmd("mkdir " + lDirectory);
system((lCmd).c_str());
它将工作,但是它显示控制台当我在Excel上运行dllfile时。
第二个方法(convertToRightFormat()将char转换为char)
std::string lDirectory("c:\MyDummyDir")
std::string lCmd("mkdir " + lDirectory);
BOOL _status = TRUE;
DWORD _reply, _code;
STARTUPINFO _si = { sizeof(_si) };
PROCESS_INFORMATION _pi;
TCHAR *_cmd = NULL;
_cmd=convertToRightFormat(lCmd.c_str())
_status &= CreateProcess(NULL, _cmd, NULL, NULL, FALSE, CREATE_NO_WINDOW, NULL, NULL, &_si, &_pi);
这个方法不起作用(甚至不能创建文件夹),显然它也不能用于"MyDataGenerator"进程。
我尝试使用可执行MKDIR.EXE并将其放在命令行中。在这种情况下,它可以工作,但仍然不能为MyDataGenerator工作。
是否有一个通用的使所有命令行工作,而不显示控制台?
谢谢你。
#include <Windows.h> // FreeConsole, system
int main(int argc, char* argv[])
{
system("mkdir newdirectoryname");
FreeConsole();
}
这将导致cmd在一瞬间弹出。之后就关门了。
如果这是不可接受的,只是针对窗口子系统,而不是控制台,并确保不绘制窗口。
相关文章:
- 有没有办法让我编写一个可以在Windows和Linux上运行的命令行游戏?
- 程序运行,但文件无法打开.C++中的命令行
- 选择特定版本的 Visual Studio 命令行工具包,并根据特定版本的C++运行时环境编译文件
- Visual Studio,从命令行运行cmakesettings.json
- 从命令行运行 Visual Studio Profiler
- 使用命令行运行 gtest 会出现错误
- 如何从命令行运行可执行文件时启用系统错误消息
- 如何使用命令行运行代码块项目
- 从命令行运行本机 VS2012/C++ 64 位单元测试
- 如何使用Visual Studio从命令行运行OpenCL程序
- 如何使用Qt Windows中的设置路径属性从命令行运行应用程序(.exe)时在命令行上打印日志
- Visual Studio 2010 从命令行运行.exe与运行 (f5) 调试
- 可以从命令行运行C++代码,但不能从visual studio中的调试模式运行
- 如何在Windows上使用命令行运行UnitTest++
- 从命令行运行Borland-turbo++10IDE项目
- 是否可以从命令行运行最小化HTML的页面速度
- SDL程序可以自己运行,但不能通过命令行运行
- 从命令行运行 c++ 文件
- 如何通过命令行运行Google Test
- 从Windows命令行运行c++应用程序