在具有空间的路径中调用可执行文件时出现问题

时间:2017-10-13 09:46:02

标签: r path environment-variables command-line-interface

我刚刚在新的Microsoft Windows 7计算机上安装了R,并且在使用命令行时出现以下错误:

"C:\Program Files\R\R-3.3.2\bin\Rscript.exe" --version  
'C:\Program' is not recognized as an internal or external command,

可操作程序或批处理文件。

请注意,我在路径周围添加了带空格的引号。我在系统路径中添加了:

;C:\Program Files\R\R-3.3.2\bin\

有趣的是:

  1. 如果我只是调用这个Rscript.exe --version它会给出相同的错误,这很奇怪:如果找到它,为什么不能运行呢!?! 我能找到的唯一解释是在查找Rscript.exe的依赖关系时发生错误
  2. 我也注意到这有效"C:\Program Files\R\R-3.3.3\bin\x64\Rscript.exe" --version(文件夹...\bin...\bin\x64都有可执行的Rscript.exe)
  3. 最后我确认这是一个R特定问题,因为我在Program Files子文件夹中尝试过的所有其他可执行文件都可以通过相同的命令行界面调用!

2 个答案:

答案 0 :(得分:2)

我一直试图复制你的问题,我在你的问题中找到了一件事:你提到这不起作用:

"C:\Program Files\R\R-3.3.2\bin\Rscript.exe" --version  
'C:\Program' is not recognized as an internal or external command,

但这样做:

"C:\Program Files\R\R-3.3.3\bin\x64\Rscript.exe" --version

似乎你在可行的例子中使用R-3.3.3,而在没有的例子中使用R-3.3.2。

所以我认为如果你把它改成

"C:\Program Files\R\R-3.3.3\bin\Rscript.exe" --version  

它应该有用。

答案 1 :(得分:0)

结帐

C:\Users>Rscript --help
Usage: /path/to/Rscript [--options] [-e expr [-e expr2 ...] | file] [args]

--options accepted are
  --help              Print usage and exit
  --version           Print version and exit
  --verbose           Print information on progress
  --default-packages=list
                      Where 'list' is a comma-separated set
                        of package names, or 'NULL'
or options to R, in addition to --slave --no-restore, such as
  --save              Do save workspace at the end of the session
  --no-environ        Don't read the site and user environment files
  --no-site-file      Don't read the site-wide Rprofile
  --no-init-file      Don't read the user R profile
  --restore           Do restore previously saved objects at startup
  --vanilla           Combine --no-save, --no-restore, --no-site-file
                        --no-init-file and --no-environ

'file' may contain spaces but not shell metacharacters
Expressions (one or more '-e <expr>') may be used *instead* of 'file'
See also  ?Rscript  from within R

追求你的理论认为某些依赖是错误的,我希望--verbose会指出Rscript尝试读取的其他文件。没有这样的运气。

顺便说一句,除非我向Rscript提供一些命令,否则这些选项几乎都不可用,否则它会一直抱怨&#34;文件名丢失&#34;。因此,对于任何这些可能性,您可以使用类似

的内容
C:\Users>Rscript --verbose -e print(2+2)

话虽如此,您可以通过使用--no-environ--no-site-file--vanilla等选项来进一步追求您的理论,使其跳过任何文件依赖关系并查看是否存在把你带到某个地方。