通过命令行控制一个shell程序,给它多个指令/数据
我需要在C++(windows)中控制一个程序,我需要调用它,然后在收集数据时将它传递给它,最后在某个命令该程序将使用该数据。通过命令行控制一个shell程序,给它多个指令/数据
我需要打开prog.exe,然后逐行或按值提供值信息,它通过cmd手动工作。
我试过系统(),但这会停止后,我打开该程序。
我需要这样的东西。
//call it
prog.exe
//add data
DataStart
Data 1 [2 34 454 5]//etc
DataEnd //the program will take it from here.
所有被传递,虽然命令行
有不同的方法可以做到这一点 - 如果你的程序需要获取的数据作为输入之前,通过您的代码执行的方式的一部分,你可以只使用标准输入,并提示用户输入数据。如果你想使用的变量值的输入,但执行之前,你会了解他们,你可以把信息作为命令行参数,在这里你将执行像这样
prog.exe 1 2 3
,你的程序将通过访问数据argv [i]我对应每个命令行参数。
对不起,如果我把这个答复放在错误的部分。 我不知道任何值,所以我不能parize命令行。 通过调用程序,它在shell中启动,它将然后除了用户输入作为其变量等。 接受这些输入的程序不是我的 我想输入这些变量,但是每次都需要查询。我需要统计编,并保留访问权限,所以我可以添加这个数据,因为它是困难的。 – 2010-07-07 18:40:13
必须从标准输入读取程序,并通过命令行“管”的其他程序到你的
如结果。
datagenerator.exe | prog.exe
假设datagenerator.exe写入标准输出,字符会将输出重定向到prog.exe的标准输入
只需从标准输入读取即可。 – 2010-07-07 17:24:57
你的意思是'prog.exe'会从标准输入中读取数据吗?你可能是这个意思。 – Amadan 2010-07-07 17:25:04
不完全是http://stackoverflow.com/questions/450865/what-is-the-equivalent-to-posix-popen-in-the-win32-api的重复,但答案应该是有用的。 – sarnold 2010-07-07 17:30:07