【问题标题】:Trying to add R.exe to the PATH尝试将 R.exe 添加到 PATH
【发布时间】:2021-10-12 01:47:06
【问题描述】:

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

System Properties -> Environment variables -> Edit -> new: copy and paste: "C:\Program Files\R\R-3.5.0\bin\x64"

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

【问题讨论】:

    标签: r powershell


    【解决方案1】:

    概括Guenther Schmitz' helpful answer

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

    1. 别名
    2. 功能
    3. Cmdlet
    4. 外部应用程序

    请注意,名称解析总是不区分大小写的,因此rR 指的是同一个命令。

    也就是说,在R 解析为R.exe 之前,它不仅是r 别名,而且可能是一个函数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 来定位可执行文件:
      & (Get-Command -Type Application R) ...

    或者,如 Guenther 的回答中所述,您可以将 Remove-Alias r 添加到您的 PowerShell $PROFILE 文件中,以便在会话启动时删除内置别名,这样您就可以只使用 r 来启动 @ 987654346@.

    【讨论】:

      【解决方案2】:

      当输入get-alias r时,我得到了以下结果,所以是的“r”已经被占用了......

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

      PS:您可以使用 remove-item alias:\r 从当前的 powershell 会话中删除该别名,并测试“r”是否启动“R.exe”。如果这对您有用,您可以编辑您的个人资料以从每个新会话中删除别名“r -> Invoke-History”。

      【讨论】:

      • 是的,remove-item alias:\r 使我能够使用 R 启动 R.exe。谢谢
      猜你喜欢
      • 1970-01-01
      • 2011-07-28
      • 2014-08-29
      • 2014-10-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多