Как вызвать команду powershell Set-Location автоматически?

#powershell

#powershell

Вопрос:

Я хотел бы перейти на компакт-диск в какой-либо каталог без отображения powershell пути к этому каталогу. Что бы я ни пытался — ничего не работает:

 PS C:devwindowsnc> cd .NC.Server.Host | Out-Null
C:devwindowsncNC.Server.Host
PS C:devwindowsncNC.Server.Host> cd .. > $null
C:devwindowsnc
PS C:devwindowsnc> cd .NC.Server.Host 2> $null
C:devwindowsncNC.Server.Host
PS C:devwindowsncNC.Server.Host> $x=cd ..
C:devwindowsnc
PS C:devwindowsnc>
  

Как вы можете видеть, всегда отображается путь к целевому каталогу. Это способ избежать этого? Спасибо.

Редактировать

Вот моя функция подсказки:

 PS Z:dev3rd_party> gc Function:prompt
$(if (test-path variable:/PSDebugContext) { '[DBG]: ' } else { '' })   'PS '   $(Get-Location)   $(if ($nestedpromptlevel -ge 1) { '>>' })   '> '
  

Ответ №1:

Вероятно, вы используете расширения сообщества PowerShell. В них cd определяется как псевдоним, к Set-LocationEx которому относится это поведение:

 PS Home:> Set-Location ..
PS Home:> Set-LocationEx ..
Home:
  

Либо используйте Set-Location вместо cd , либо не загружайте PSCX, либо переопределите cd его обычный псевдоним после загрузки PSCX в вашем профиле.

(По этим причинам я загружаю PSCX только изредка, если мне действительно нужна команда оттуда; переопределение основных команд или псевдонимов с немного другой семантикой является злом и никогда не должно выполняться.)

Комментарии:

1. Я отредактировал свой пост, чтобы указать на реальную проблему ;-). Извините за удар в темноте ранее.