Rscript file path with space

Gabriel Olshansky picture Gabriel Olshansky · Jan 31, 2018 · Viewed 9.5k times · Source

I am trying to run the following R script in windows shell:

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

In this case I get the error:

Fatal error: cannot open file 'C:/Documents/Folder': No such file or directory

However when I use quotation marks (tried single double and triple as was suggested in other posts) I get the following error:

Rscript "C:/Documents/Folder name containing space/myscript.txt"
The filename, directory name, or volume label syntax is incorrect.

I can't find a way to get around the space problem and changing the file location so there are no white-spaces is not an option for me.

Any help would be greatly appreciated.

Further Clarifications:

The issue I am having is not directly related to R but rather to to having the file path that contains spaced being passed to Rscript.

In the documentations, Rsript should be used in the following way:

Rscript [options] [-e expr [-e expr2 ...] | file] [args]

It is also noted that:

Spaces are allowed in expression and file (but will need to be protected from the shell in use, if any, for example by enclosing the argument in quotes).

However trying to enclose the file path in quotes results in the error

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

To avoid confusion, running Rscript C:/Documents/Folder_name/myscript.txt works fine when the path doesn't contain any spaces as does Rscript "C:/Documents/Folder_name/myscript.txt".

Answer

antonio picture antonio · May 29, 2018

It is a BUG in R version 3.5.0 for Windows.
One workaround, apart from downgrading, is creating an R script with no spaces in its path and run the spaced one with source():

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

Then you run it with:

Rscript C:\Documents\Folder-name-no-space\myscript.txt

or also:

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

You may also try the 8.3 filename. You can get it with:

for %I in ("C:/Documents/Folder name containing space/myscript.txt") do @echo %~sI

UPDATE

Since 3.5.1 the problem has been fixed.