Как установить псевдоним, который работает только из определенной папки в powershell? - PullRequest
0 голосов
/ 01 марта 2019

Я использую PowerShell для управления сборкой некоторых проектов .net на моей машине, и я хотел бы создать для них псевдонимы.Единственная хитрость в том, что я хотел бы использовать псевдонимы, только когда я нахожусь в папке, содержащей весь код.Есть ли способ применить псевдонимы только в определенной папке?

1 Ответ

0 голосов
/ 01 марта 2019

Я бы не рекомендовал его из-за его неясности, но вы могли бы динамически добавлять и удалять псевдонимы или функции через prompt функцию , которая определяет строку интерактивного приглашения, потому что она вызывается после каждой команды.

Обратите внимание, что псевдонимы PowerShell допускают только команду псевдонимов names (или paths);то есть вы не можете вставить аргументы в них, поэтому в следующем примере вместо этого используется функция (но она будет работать аналогично для псевдонимов):

function prompt {
  # Define function `gs` on demand whenever the current location is a in a Git
  # repo folder, and remove it when switching to any other folder.
  if (Test-Path ./.git) { function global:gs { git status $Args } }
                   else { Remove-Item -EA Ignore function:global:gs }
  # Define the standard PS prompt string.
  "PS $PWD$('>' * ($nestedPromptLevel + 1)) "
}

Чтобы уменьшитьиз-за неясности, вы можете изменить строку приглашения, чтобы указать, действуют ли специфичные для папки команды:

function prompt {
  # Define function `gs` on demand whenever the current location is a in a Git
  # repo folder, and remove it when switching to any other folder.
  if (Test-Path ./.git) {
    $indicator = '[repo]'
    function global:gs { git status $Args }
  } else {
    $indicator = ''
    Remove-Item -EA Ignore function:global:gs
  }

  # Define the standard PS prompt string.
  "PS $PWD $indicator$('>' * ($nestedPromptLevel + 1)) "
}

Теперь ваша подсказка будет содержать подстроку [repo] (например, PS /Users/jdoe/Projects/foo [repo]>) всякий раз, когда текущийпапка Git-репо.

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