带空格的 Rscript 文件路径

标签 r cmd whitespace rscript

我正在尝试在 Windows shell 中运行以下 R 脚本:

Rscript C:/Documents/Folder name containing space/myscript.txt

在这种情况下,我收到错误:
Fatal error: cannot open file 'C:/Documents/Folder': No such file or directory

但是,当我使用引号时(如其他帖子中建议的那样尝试单双和三双),我收到以下错误:
Rscript "C:/Documents/Folder name containing space/myscript.txt"
The filename, directory name, or volume label syntax is incorrect.

我找不到解决空间问题和更改文件位置的方法,因此没有空格对我来说不是一个选择。

任何帮助将不胜感激。

进一步说明:

我遇到的问题与 R 没有直接关系,而是与将包含空格的文件路径传递给 Rscript 相关。

在文档中,Rsript 应按以下方式使用:
Rscript [options] [-e expr [-e expr2 ...] | file] [args]

还指出:

表达式和文件中允许有空格(但需要保护它不受正在使用的 shell 的影响,如果有的话,例如通过将参数括在引号中)。

但是,尝试将文件路径括在引号中会导致错误
The filename, directory name, or volume label syntax is incorrect.

为避免混淆 , 正在运行 Rscript C:/Documents/Folder_name/myscript.txt当路径不包含任何空格时工作正常 Rscript "C:/Documents/Folder_name/myscript.txt" .

最佳答案

这是 R 版本 3.5.0 for Windows 中的一个 BUG。
除了降级之外,一种解决方法是创建一个路径中没有空格的 R 脚本,然后使用 source() 运行间隔的脚本。 :

## C:\Documents\Folder-name-no-space\myscript.txt
source("C:/Documents/Folder name containing space/myscript.txt")

然后你运行它:
Rscript C:\Documents\Folder-name-no-space\myscript.txt

或者:
Rscript C:/Documents/Folder-name-no-space/myscript.txt

您也可以尝试使用 8.3 文件名。您可以通过以下方式获取:
for %I in ("C:/Documents/Folder name containing space/myscript.txt") do @echo %~sI

更新

自 3.5.1 以来,该问题已得到修复。

关于带空格的 Rscript 文件路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48544345/

相关文章:

mysql - 使用 cmdwing 导出数据库

windows - 使用批处理脚本在 if 语句中设置多个变量

jquery - 字符下方的html文本空格

grep匹配具有n个前导空格的行

c# - 如果没有空格分隔符,为什么 XmlReader 会跳过所有其他元素?

r - 使用 R 中的命名向量按列和行对表进行子集

r - 从 Github 安装 R-Package

重新排列两列,使 R 中第一列的值始终较大

r - 计算多对列的比率

windows - 一个简单的 bat 文件中的两个输入变量