2016-01-20 76 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

相關問題