2011-04-29 74 views
3

我需要一些关于我的C++程序的帮助。一个名为abc.bat的批处理文件位于我的硬盘中。我知道,在C++中我可以用这行代码来执行abc.bat文件:如何通过C++程序在批处理文件上写一些命令?

system ("file path here\\abc.bat");

我想一些命令发送到该批处理文件,以便执行该abc.bat文件我的C之后++程序应该写命令到它的控制台并执行它们。我怎样才能做到这一点?

+0

你的问题没有意义。你想发送命令到批处理文件,但你想让C++程序执行它们?请更清楚。 – 2011-04-29 08:22:05

+0

感谢Oli Charlesworth的快速回复。让我告诉你详细信息,我有一个名为“monkeyrunner”的批处理文件,我可以手动打开它,然后它会像命令提示符一样打开,然后我在其上编写不同的命令,并且它工作正常。现在我正在尝试编写它,我不想手动打开monkeyrunner,但是我希望通过我的C++程序打开它,并在语法上编写命令,并且我的C++程序将在该批处理文件上执行命令。我怎样才能做到这一点? 的#include 使用命名空间std的#include;: – Azeem 2011-04-29 08:26:32

回答

3

您可以通过打开做到这一点。简而言之:

FILE *bat = popen("path\\abc.bat", "w"); 
fprintf(bat, "first command\n"); 
fprintf(bat, "second command\n"); 
pclose(bat); 

你写bat文本将结束在批处理文件的标准输入。

+0

我试过这个代码 int main() { \t FILE * bat = popen(“E:\\ Softwares \\ android-sdk_r10-windows \\ android-sdk-windows \\ tools \\ abc.bat”,“w”) ; \t fprintf中(蝙蝠 “从进口com.android.monkeyrunner MonkeyRunner,MonkeyDevice \ n”); \t // fprintf(bat,“second command \ n”); \t pclose(蝙蝠); return 0; }但是我收到编译错误:'popen':未声明的标识符 – Azeem 2011-04-29 08:39:04

+0

您似乎正在运行Windows。在这种情况下,使用'_popen()'和'_pclose()'。 – 2011-04-29 08:48:23

+0

谢谢朋友,_popen()为我工作,但仍然有一些问题。我的C++程序只需打开该文件洗澡,但我不能看到其上运行的命令:( – Azeem 2011-04-29 08:53:48