Попытка добавить R.exe в ПУТЬ - PullRequest
0 голосов
/ 05 мая 2018

Итак, я попытался добавить R в путь в Windows 10, который предположительно прост.

Свойства системы -> Переменные среды -> Правка -> новое: копирование и вставка: "C: \ Program Files \ R \ R-3.5.0 \ bin \ x64"

Теперь дело в том, что Powershell просто отказывается запускать среду R, когда я набираю R. R.exe, очевидно, работает. Руи работает также. R зарезервированное письмо в powershell или что-то? Также кажется, что иногда повторяется предыдущая команда, но на самом деле это тоже не совсем соответствует. (Я поместил эту запись поверх списка путей и уже перезапустил компьютер)

Ответы [ 2 ]

0 голосов
/ 05 мая 2018

К обобщить Полезный ответ Гюнтера Шмитца :

PowerShell имеет несколько типов команд , чей приоритет равен:

  1. Псевдоним
  2. Функция
  3. Cmdlet
  4. Внешнее приложение

Обратите внимание, что разрешение имен всегда регистр нечувствительно , так что и r, и R относятся к одной и той же команде.

То есть, прежде чем R преобразуется в R.exe, это может помешать не только r псевдоним , но также функция или cmdlet (хотя последний случай является гипотетическим, поскольку командлеты с хорошим поведением следуют шаблону именования <Verb>-<Noun>).

Обратите внимание, что встроенные псевдонимы, отслеживающие внешние программы, особенно стандартные, проблематичны, и в контексте PowerShell Core ведется дискуссия о том, удалять ли все встроенные псевдонимы и сделайте их opt-in only - см. этот выпуск GitHub .

Чтобы увидеть, к чему относится данное имя, используйте командлет Get-Command:

# 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 - т. Е. Используйте имя файла extension явно:
    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) ...

0 голосов
/ 05 мая 2018

при вводе get-alias r я получил следующий результат, так что да "r" уже занято ...

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

PS: вы можете удалить этот псевдоним с remove-item alias:\r из текущего сеанса PowerShell и проверить, если «r» запускает «R.exe». если это работает для вас, вы можете отредактировать свой профиль, удаляя псевдоним "r -> Invoke-History" из каждого нового сеанса.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...