尝试将R.exe添加到PATH

时间:2018-05-05 15:18:34

标签: r powershell

所以我尝试将R添加到Windows 10上的路径,这应该很容易。

系统属性 - >环境变量 - >编辑 - > new:复制并粘贴:“C:\ Program Files \ R \ R-3.5.0 \ bin \ x64”

现在问题是,当我输入R时,Powershell只是拒绝启动R环境.R.exe显然工作。 Rgui工作得很好。 R是powershell中的保留字母还是什么?它似乎有时会重复上一个命令,但这看起来并不完全一致。 (我把这个条目放在路径列表的顶部并重新启动了电脑)

2 个答案:

答案 0 :(得分:2)

概括 Guenther Schmitz' helpful answer

PowerShell有几种类型的命令,其precedence是:

  1. 别名
  2. 功能
  3. Cmdlet的
  4. 外部申请
  5. 请注意,名称解析始终为case-不敏感,因此rR都引用相同的命令。

    也就是说,在R解析为R.exe之前,它不仅可以阻挡r 别名,还可以阻止 function cmdlet (尽管后一种情况是假设的,因为行为良好的cmdlet遵循<Verb>-<Noun>命名模式)。

    请注意,隐藏外部程序(尤其是标准程序)的内置别名是有问题的,在PowerShell Core 的上下文中,正在讨论是否删除所有内置别名并让他们选择加入 - 请参阅this GitHub issue

    要查看给定名称解析的内容,请使用Get-Command cmdlet:

    # See what R resolves to
    Get-Command R
    
    # See ALL commands that R *can* resolve to, with the EFFECTIVE one listed first:
    Get-Command -All R
    

    明确定位R.exe的选择:

    • (如您所知)如果其文件夹位于环境变量$env:PATH中列出的某个文件夹中,请附加.exe - 即使用文件名扩展名明确:
      R.exe ...

    • 使用R.exe的完整路径(请注意&需要调用,因为路径需要引用):
      & "C:\Program Files\R\R-3.5.0\bin\x64\R.exe" ...

    • (为了完整起见;这只是使用R.exe的繁琐等价物):使用Get-Command -Type Application R找到可执行文件:
      & (Get-Command -Type Application R) ...

答案 1 :(得分:1)

进入get-alias r时,我得到了以下结果,所以是的,#34; r&#34;已经采取了......

CommandType     Name                                               Version    Source
-----------     ----                                               -------    ------
Alias           r -> Invoke-History

PS:您可以从当前的PowerShell会话中删除remove-item alias:\r的别名,并测试是否&#34; r&#34;然后开始&#34; R.exe&#34;。如果这对您有用,您可以编辑您的个人资料以删除别名&#34; r - &gt;调用-历史&#34;从每个新会议开始。