Space 中的参数导致 Windows 命令提示符中的错误

Space in argument causing errors in Windows Command Prompt

我正在尝试通过命令提示符 运行 R 脚本。我的操作系统是 Windows 10。我在 运行 编译代码时遇到问题,因为我的参数的文件路径中有一个 space。这是我粘贴到命令提示符中的内容。

"C:\Program Files\R\R-3.4.3\bin\Rscript.exe" "C:\Users\Scott\Google Drive\RScriptsB\Bundle_Runner.R"

I get this error:

The filename, directory name, or volume label syntax is incorrect.

但是,当我 运行 它使用没有 space 的文件路径时,它 运行 没问题。

"C:\Program Files\R\R-3.4.3\bin\Rscript.exe" "C:\Users\Scott\Desktop\Bundle_Runner.R"

当我通过 Task Scheduler 安排任务时会发生相同的行为:它不适用于 space,当我从文件路径中删除 space 时它会起作用。

我正在使用 Google Drive 从多台计算机同步工作,所以我希望能够 运行 我的脚本使用带 space 的文件路径。

有什么解决办法吗?

试试这个:

C:/PROGRA~1/R/R-3.4.3/bin/Rscript.exe "C:\Users\Scott\Desktop\Bundle_Runner.R"

C:/PROGRA~1/R/R-3.4.3/bin/Rscript.exe C:/Users/Scott/Google~1/RScriptsB/Bundle_Runner.R
FOR %%a IN ("C:\Users\Scott\Google Drive\RScriptsB\Bundle_Runner.R") DO "C:\Program Files\R\R-3.4.3\bin\Rscript.exe" %%~sa

将是我的方法 - 问题似乎出在 R,而不是 cmd

这可能与 r-devel 报告的错误有关(“[Rd] Bug in RScript.exe for 3.5.0”,https://stat.ethz.ch/pipermail/r-devel/2018-April/075869.html)已在第二天修复。

也许问题已经存在于 R 3.4.3(您在问题中使用)。

建议的解决方法:

...add an extra first argument that has no space in it, e.g. Rscript --vanilla "foo bar.R"

要尽量减少 --vanilla 造成的影响,您可以使用

Rscript --no-save "foo bar.R"

相反(只是在会话结束时不保存工作区)。