2016-01-20 37 views
-1

我想在改变输入参数的同时自动运行exe程序(模拟程序),并在每次更改参数后存储结果。在输入参数改变的情况下运行.exe

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

+0

你到目前为止尝试过什么?你可以发布一些代码吗? 另外,你面临的问题是什么?这是很不清楚你问的。 – Demitrian

回答

0

好像你的任务归结为两点:

  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的行上运行外部程序,循环跳转数据,这可能会对你的情况更有意义。

+0

非常感谢您对Konrad的快速响应。我会在明天看看它并尝试一下。不过,也许我会延迟一点,直到完成。 – UnSF

相关问题