【问题标题】:Control a shell program through command line, giving it multiple instructions/data通过命令行控制一个shell程序,给它多个指令/数据
【发布时间】:2010-07-07 17:21:32
【问题描述】:

我需要在 c++(windows)中控制一个程序,我需要调用它,然后在收集它时将数据传递给它,最后在某个命令之后程序将使用该数据。

我需要打开prog.exe,然后逐行或逐值提供信息,它通过cmd手动工作。

我已经尝试过 system() 但打开程序后它会停止。

我需要这样的东西。

//call it
prog.exe
//add data
DataStart
Data 1 [2 34 454 5]//etc
DataEnd //the program will take it from here.

全部通过命令行传递

【问题讨论】:

  • 只从标准输入读取。
  • 你的意思是,prog.exe 会从标准输入读取数据吗?你可能是这个意思。
  • stackoverflow.com/questions/450865/… 不完全相同,但答案应该很有用。

标签: c++ shell command-line controls


【解决方案1】:

您可以通过不同的方式来执行此操作 - 如果您的程序需要在将数据作为输入之前执行部分代码,您可以只使用标准输入,并提示用户输入数据。如果你想使用变量值作为输入,但在执行之前你会知道它们,你可以将信息作为命令行参数传递,在那里你将像这样执行

prog.exe 1 2 3

您的程序将通过 argv[i] 访问数据,其中 i 对应于每个命令行参数。

【讨论】:

  • 对不起,如果我把这个回复放在错误的部分。我不知道任何值,所以我无法解析命令行。通过调用程序,它在 shell 中启动,然后它将用户输入作为其变量等除外。接受这些输入的程序不是我的,我想输入这些变量,但是每次都需要查询。我需要统计 prog 并保留对它的访问权限,以便我可以在查询时添加此数据。
【解决方案2】:

让您的程序从标准输入读取,并从命令行“管道”将其他程序的结果传输到您的程序

例如。

数据生成器.exe | prog.exe

假设 datagenerator.exe 写入标准输出,|字符会将输出重定向到 prog.exe 的标准输入

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-08-15
    • 2013-11-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多