Rscript file path with space

12,004

Solution 1

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.

Solution 2

Simple solution: install a newer version of R.

From the version 3.5.1 release notes, the relevant bug fix is described here:

Allow file argument of Rscript to include space even when it is first on the command line.

Solution 3

Forward slashes work just fine with R, so don't worry about backward slashes. I've just verified and the following works at the CMD.exe terminal of Windows 8.1:

C:\Windows\System32> Rscript "C:/Users/hb/folder with spaces/script.R"
[1] "1+2+3"

C:\Windows\System32>

My best guess is that you've got the pathname incorrect. If it's a non-existing pathname, you do get:

C:\Windows\System32> Rscript --vanilla "C:/Users/hb/folder with spaces/non-existing.R"
Fatal error: cannot open file 'C:/Users/hb/folder with spaces/non-existing.R': No such file or directory

You can validate it from within R, e.g.

> file.exists("C:/Users/hb/folder with spaces/script.R")
[1] TRUE
Share:
12,004
Gabriel Olshansky
Author by

Gabriel Olshansky

Updated on June 04, 2022

Comments

  • Gabriel Olshansky
    Gabriel Olshansky almost 2 years

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