2015-08-14 90 views
2

我想從R腳本執行批處理文件。該文件位於\\network\path\to\batch\file.bat之類的目錄中。在R腳本中執行批處理文件

我知道我可以在R中使用system命令來運行DOS命令,但我不能簡單地使用system("start file.bat")。那麼我如何最好地使用R腳本來執行這個批處理文件呢?

+1

到底是什麼您遇到的問題? – Dason

回答

3

嘗試shell.exec("\\\\network\\path\\file.bat")

shell.exec命令使用Windows的相關應用程序打開該文件。請注意雙重反撥。

專業提示:write.csv(file='tmp.csv',tmpdat);shell.exec('tmp.csv')對於快速檢查輸出很有用(假設您已將CSV文件與您的首選應用程序關聯以查看CSV文件)。

+0

我可能需要爲此提出一個新問題,但是,如何強制R腳本等到批處理腳本完全運行後再執行? 現在,腳本只是啓動批處理腳本並轉到代碼的下一部分。 – David

0

嘗試 殼( '\網絡\路徑\爲\批次\ file.bat')

0

由於Bryan已經聲明殼是更好的選擇,因爲它的默認等待cmd完成。

0

在Windows中使用RSelenium時發現此問題,但使用this batch file確保關閉所有的chromedriver進程。經過漫長的討論後,我結束了大量的這些過程。

我的解決辦法是從R腳本中,每隔一段時間通過執行批處理文件:

shell.exec(file.path(getwd(), "kill_chromedriver.bat"))