我的目的:我想制作一个能够使用DOS命令的C ++程序。
选项:我可以制作一个批处理文件,并将DOS命令放入其中。 但是我不知道如何从C ++程序中使用此文件?
我的目的:我想制作一个能够使用DOS命令的C ++程序。
选项:我可以制作一个批处理文件,并将DOS命令放入其中。 但是我不知道如何从C ++程序中使用此文件?
在Windows上从C/C++运行批处理文件有两个选项。
首先,您可以使用system(或对于宽字符的_wsystem)。
"system函数将命令传递给命令解释器,该解释器将字符串作为操作系统命令执行。system引用定位命令解释器文件(在Windows 2000及更高版本中命名为CMD.EXE的文件)的COMSPEC和PATH环境变量。"
或者您可以直接使用CreateProcess。
注意,对于批处理文件:
"要运行批处理文件,必须启动命令解释器;将lpApplicationName设置为cmd.exe,并将lpCommandLine设置为以下参数:/c加上批处理文件的名称。"
//example that makes and then calls a batch file
#include <iostream>
#include <fstream>
#include <stdlib.h>
using namespace std;
int main(int argc, char *argv[])
{
ofstream batch;
batch.open("mybatchfile.bat", ios::out);
batch <<"@echo OFF\n";
batch <<":START\n";
batch <<"dir C:\n";
batch <<"myc++file 2 >nul\n";
batch <<"goto :eof\n";
batch.close();
if (argc == 2)
{
system("mybatchfiles.bat");
cout <<"Starting Batch File...\n";
}
}
您可能需要查看system
,ShellExecute
和CreateProcess
调用,以找出在此场景中哪个是合适的。
你可以在C++程序中使用系统调用来执行用户输入的所有命令。