2015-08-14 91 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"))