【发布时间】:2018-07-10 16:36:07
【问题描述】:
我正在尝试在 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" 一样。
【问题讨论】:
-
这样可以
Rscript C:/Documents/Folder\\ name\\ containing\\ space/myscript.txt吗? -
打开一个命令提示符窗口并运行
cmd /?。最后一个帮助页面输出到控制台窗口(不是shell窗口)的最后一段解释说,文件名参数必须用双引号括起来,以包含空格或这些字符之一&()[]{}^=;!'+,`~。 Windows 上的目录分隔符是反斜杠字符\。不知道 Windows 上的Rscript是否期望文件名与 Unix/Linux/Mac 上的/相同。Rscript.exe "C:\Documents\Folder name containing space\myscript.txt"可能工作。 (我无法测试它,因为没有安装 Rscript。) -
感谢您的关注,但这并不能解决问题。我遇到的问题不在于 R 本身,而是通过 shell 传递文件路径。使用
"file path"不起作用,返回The filename, directory name, or volume label syntax is incorrect.。我正在寻找一种让 shell 传递包含空格的文件路径的方法。在文档中指定了 在表达式和文件中允许使用空格(但需要保护使用中的 shell,如果有的话,例如通过将参数括在引号中)。似乎没用。 -
@rashid 和 @lit 使用 \\ 并不能解决问题,而是返回
C:/Documents/Folder\\' is not recognized as an internal or external command, operable program or batch file -
您是否尝试将文件路径用引号括起来?所以
Rscript "C:/Documents/Folder name containing space/myscript.txt"
标签: r cmd whitespace rscript