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

时间:2018-04-05 22:23:21

标签: r batch-file command-prompt rscript

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

"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.

但是,当我使用没有空格的文件路径运行它时,它运行正常。

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

当我通过任务计划程序安排任务时会发生同样的行为:它不能处理空间,并且当我从文件路径中删除空间时它会起作用。

我使用Google云端硬盘来同步多台计算机上的工作,因此我希望能够使用带有空格的文件路径来运行我的脚本。

任何解决方案?

3 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

试试这个:

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

答案 2 :(得分:0)

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

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

建议的解决方法:

  

...添加一个没有空格的额外第一个参数,例如Rscript --vanilla "foo bar.R"

尽量减少--vanilla可能导致的影响

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

(在会话结束时不会保存工作区)。