使用可选参数在批处理文件上运行Rscript.exe

时间:2015-03-17 15:36:22

标签: r batch-file rscript

我运行Windows批处理文件(.bat)

path_to_Rscript.exe file.R parameter1 parameter2 parameter3

在名为file.R

的文件上

file.R中,我使用

读取参数
commandArgs(trailingOnly = TRUE)
ABC <- args[1]
DEF <- args[2]
GHI <- args[3]

如果没有parameter2,则仅调用

path_to_Rscript.exe file.R parameter1 parameter3

如何确保parameter3未分配给DEF

到目前为止,我使用%%作为占位符,但我不确定这是否是一种常见方法。

是否存在空参数的常规占位符?

1 个答案:

答案 0 :(得分:2)

没有一般的“no arg”占位符,这取决于程序。

答案是,如果没有一些假设,你无法确保p3没有被分配到DEF,即,如果你只有两个参数,那么它们总是会成为ABC和GHI。在这种情况下,您检查commandArgs的长度并相应地进行调整 - 这是一个非常狭窄的解决方案。

如果你想使用可选的位置参数(这通常是一个坏主意),他们必须在最后,然后你真的只得到一个你现在面对的相同的原因。

摆脱这个难题的最好方法是使用docopt。如果你不能使用docopt,那么你就无法实现命令行解析器的实现,这是一个普遍解决的问题。