所以我尝试将R添加到Windows 10上的路径,这应该很容易。
系统属性 - >环境变量 - >编辑 - > new:复制并粘贴:“C:\ Program Files \ R \ R-3.5.0 \ bin \ x64”
现在问题是,当我输入R时,Powershell只是拒绝启动R环境.R.exe显然工作。 Rgui工作得很好。 R是powershell中的保留字母还是什么?它似乎有时会重复上一个命令,但这看起来并不完全一致。 (我把这个条目放在路径列表的顶部并重新启动了电脑)
答案 0 :(得分:2)
要概括 Guenther Schmitz' helpful answer:
PowerShell有几种类型的命令,其precedence是:
请注意,名称解析始终为case-不敏感,因此r
和R
都引用相同的命令。
也就是说,在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;从每个新会议开始。