我想通过更改输入参数自动运行exe程序(模拟程序),并在每次更改参数后存储结果。
程序有一个Exe_Input.txt
文件,用于存储基本输入数据。我创建了另一个parameter.txt
文件,其中包含一列和200行(数字)。所以现在我希望R取第一行数,将其写在Exe_Input.txt
的某一行,启动program.exe
(也许带system()
- 我是对的吗?)并创建一个结果表。然后从parameter.txt
的第二行开始循环,开始.exe
结果表和下一个......直到parameter.txt
结束。
答案 0 :(得分:0)
您的任务似乎归结为两件事:
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"
}
然后,您只需在mySwitch
语法中使用paste
:
paste("C:\\me\\my_app.EXE", mySwitch, sep = " ")
作为侧点,如果您希望构建文件的动态路径,也可以考虑使用file.path
。
如果通过system
传递单行是不够的,您可以考虑编写your lines to a text file并运行更精细的批处理文件。这将是一个相当奇特的解决方案,但如果你坚持与外部应用程序的一些深度集成,它可能是有道理的。然后,您可以自动将多行代码写入批处理文件,每行包含处理另一块数据的命令或发送不同的命令等。或者在this solution行上,您可以循环运行外部程序,跳过一些数据,这可能在你的情况下更有意义。