2011-04-29 55 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

相關問題