Как молча вызвать команду powershell Set-Location? - PullRequest
3 голосов
/ 02 октября 2011

Я хотел бы перейти в какой-либо каталог без указания пути к этому каталогу в PowerShell. Неважно, что я пытаюсь - ничего не работает:

PS C:\dev\windows\nc> cd .\NC.Server.Host | Out-Null
C:\dev\windows\nc\NC.Server.Host
PS C:\dev\windows\nc\NC.Server.Host> cd .. > $null
C:\dev\windows\nc
PS C:\dev\windows\nc> cd .\NC.Server.Host 2> $null
C:\dev\windows\nc\NC.Server.Host
PS C:\dev\windows\nc\NC.Server.Host> $x=cd ..
C:\dev\windows\nc
PS C:\dev\windows\nc>

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

EDIT

Вот моя подсказка:

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

1 Ответ

5 голосов
/ 02 октября 2011

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

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

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

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

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