【问题标题】:Run .exe with changing input parameters运行 .exe 并更改输入参数
【发布时间】:2016-01-20 21:24:25
【问题描述】:

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

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

【问题讨论】:

  • 到目前为止你尝试过什么?你能发布一些代码吗?另外,您面临的问题是什么?很不清楚你在问什么。

标签: r


【解决方案1】:

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

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

第一个主题在 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"
  }

那么您只需在 paste 语法中使用 mySwitch

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

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

替代方法

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

【讨论】:

  • 非常感谢康拉德的快速回复。我明天会看一下并尝试一下。不过,也许我会延迟一点,直到我完成。
猜你喜欢
  • 2018-12-13
  • 1970-01-01
  • 1970-01-01
  • 2011-10-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-06-20
相关资源
最近更新 更多