我想使用命令行(CMD.exe)執行一個函數(如「DIR」; CD等)並讀出結果。我用POPEN試了一下,但問題是,我只能執行1個命令。 像C++執行命令行並得到結果
cd ..
dir
wouldnt工作的方式,我這樣做。
這裏是我的「假代碼」,我要怎麼做,
Get Order from USER
Execute in Commandline
Print out the Result
Jump to start
我做的那樣。對象「S」是我的套接字類的一部分。
while (1)
{
//GET THE ORDER
std::string r = s->ReceiveLine();
if (r.empty()) break;
cout<<r<<endl;
//EXECUTE THE ORDER
FILE *fp = popen(r.c_str(),"r");
char buf[2560];
//READ THE RESULT AND SEND TO USER
while (fgets(buf, 2560, fp))
{
s->SendBytes(buf);
}
s->SendLine("123++END");
}
希望您選擇能理解我的問題,我的心不是英語的好:$
謝謝!
然後把一切都放在一個.cmd或.bat文件,並執行。 – OldProgrammer
不適用於我的程序。 – Maik