【问题标题】:Run Rscript.exe on batch file with optional arguments使用可选参数在批处理文件上运行 Rscript.exe
【发布时间】:2015-05-20 03:09:15
【问题描述】:

我运行一个 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

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

空参数有通用占位符吗?

【问题讨论】:

    标签: r batch-file rscript


    【解决方案1】:

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

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

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

    解决这个难题的最佳方法是使用 docopt。如果您不能使用 docopt,那么您在实现命令行解析器时遇到了困难,这是一个普遍解决的问题。

    【讨论】:

      猜你喜欢
      • 2021-11-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-01-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多