通过更改输入参数运行.exe

时间:2016-01-20 21:24:25

标签: r

我想通过更改输入参数自动运行exe程序(模拟程序),并在每次更改参数后存储结果。

程序有一个Exe_Input.txt文件,用于存储基本输入数据。我创建了另一个parameter.txt文件,其中包含一列和200行(数字)。所以现在我希望R取第一行数,将其写在Exe_Input.txt的某一行,启动program.exe(也许带system() - 我是对的吗?)并创建一个结果表。然后从parameter.txt的第二行开始循环,开始.exe结果表和下一个......直到parameter.txt结束。

1 个答案:

答案 0 :(得分:0)

您的任务似乎归结为两件事:

  1. 阅读R
  2. 中的一些数据
  3. system命令
  4. 中使用该数据

    第一个主题是在SO和on the net的长度进行讨论,因此再次覆盖它几乎没有意义。从广义上讲,在大多数情况下,无论你想使用什么,钓鱼,第一行/细胞/等,你都需要加载到R环境中。并将这些值与您的system语法一起传递。

    启动您的应用

    如果我正确理解了您的请求,您只需要将一些字符串传递给system命令,行this discussion。所以你的代码看起来像:

    system("C:\\me\\my_app.EXE")
    

    传递参数很简单,您可以使用paste函数:

    paste("C:\\me\\my_app.EXE", "/switch_on", sep = " ")
    

    当然,第二个元素可以动态创建:

      if (this == that) {
        mySwitch <- "/yes"
      }
    

    然后,您只需在mySwitch语法中使用paste

    paste("C:\\me\\my_app.EXE", mySwitch, sep = " ")
    

    作为侧点,如果您希望构建文件的动态路径,也可以考虑使用file.path

    替代方法

    如果通过system传递单行是不够的,您可以考虑编写your lines to a text file并运行更精细的批处理文件。这将是一个相当奇特的解决方案,但如果你坚持与外部应用程序的一些深度集成,它可能是有道理的。然后,您可以自动将多行代码写入批处理文件,每行包含处理另一块数据的命令或发送不同的命令等。或者在this solution行上,您可以循环运行外部程序,跳过一些数据,这可能在你的情况下更有意义。