Scala - 系统命令 - R Batch - 单引号不用于转义参数块

时间:2012-12-19 20:16:24

标签: scala

这是我的问题:我想从scala以批处理模式执行R脚本。这是我尝试使用的代码:

import scala.sys.process._
"R CMD BATCH --no-save --no-restore '--args a=1' /path/test.r".!

当我将其剪切并粘贴到终端时,该命令有效。但是当我通过scala尝试时,' - args被解释为脚本文件,我收到了致命错误:

Fatal error: cannot open file ''--args': No such file or directory

如果删除参数块,一切都有效:

import scala.sys.process._
"R CMD BATCH --no-save --no-restore /path/test.r".!

有关如何恢复预期的“正常”执行的猜测吗?

提前致谢,

BHLB

1 个答案:

答案 0 :(得分:1)

如果您在Windows上运行R,则需要使用“s而不是s。”例如,这适用于Windows:

R CMD BATCH --no-save --no-restore "--args a=1" /path/test.r

从Scala调用时,为方便起见,可以使用字符串文字:

"""R CMD BATCH --no-save --no-restore "--args a=1" /path/test.r""".!