Я пытаюсь запустить следующий R-скрипт в оболочке Windows:
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]
Также отмечается, что:
Пробелы разрешены в выражении и файле (но их необходимо защитить от используемой оболочки, если таковая имеется, например, заключив аргумент в кавычки).
Однако попытка заключить путь к файлу в кавычки приводит к ошибке
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
? - person lit   schedule 31.01.2018cmd /?
. Последний абзац на последней странице справки, выводимой в окно консоли (не окно оболочки), объясняет, что аргумент имени файла должен быть заключен в двойные кавычки, если он содержит пробел или один из этих символов&()[]{}^=;!'+,`~
. А разделителем каталогов в Windows является символ обратной косой черты\
. Не знаю, ожидает лиRscript
в Windows имена файлов, тем не менее, с/
, как в Unix/Linux/Mac.Rscript.exe "C:\Documents\Folder name containing space\myscript.txt"
может сработать. (Я не мог проверить это, потому что Rscript не установлен.) - person Mofi   schedule 01.02.2018"file path"
не работает, возвращаетсяThe filename, directory name, or volume label syntax is incorrect.
. Я ищу способ для оболочки передать путь к файлу, который включает пробелы. В документации указано, что пробелы разрешены в выражении и файле (но их необходимо защитить от используемой оболочки, если таковая имеется, например, заключив аргумент в кавычки). что не т вроде работает. - person Gabriel Olshansky   schedule 01.02.2018C:/Documents/Folder\\' is not recognized as an internal or external command, operable program or batch file
- person Gabriel Olshansky   schedule 01.02.2018The filename, directory name, or volume label syntax is incorrect.
- person Gabriel Olshansky   schedule 01.02.2018rscript.exe
имеет ошибку, если не поддерживает в Windows"C:\Documents\Folder name containing space\myscript.txt"
с разделителем каталогов Windows или"C:/Documents/Folder name containing space/myscript.txt"
с разделителем каталогов Unix/Linux/Mac. Вы можете дополнительно попробовать"C:\\Documents\\Folder name containing space\\myscript.txt"
. Но если и это не сработает, вам лучше связаться с автором Rscript и сообщить об этой ошибке, а тем временем использовать короткий путь/имя файла 8.3 для обхода этой ошибки. - person Mofi   schedule 01.02.2018"'C:/Documents/Folder name containing space/myscript.txt'"
. Интерпретатор командной строки Windowscmd.exe
не поддерживает'
для заключения аргумента в кавычки с пробелами, как интерпретаторы оболочки Linux, такие какbash
,sh
илиksh
. Поэтому в Windows необходимо использовать двойные кавычки для строки аргумента с пробелами. Но, возможно, Rscript написан настолько плохо, что корректно интерпретирует только имена файлов с пробелами, заключенными в'
. А поскольку Rscript перенесен из Unix, может помочь использование в качестве первого аргумента--
, а в качестве второго аргумента имя файла, заключенное в"
. - person Mofi   schedule 01.02.2018