Функциональность CDPATH в Powershell? - PullRequest
6 голосов
/ 30 августа 2011

Кто-нибудь реализовал эквивалентное поведение bash 'cdpath' в Powershell?

1 Ответ

6 голосов
/ 30 августа 2011

Не знал о CDPATH раньше.Хорошо знать.Я подытожил ниже для Powershell:

function cd2 {
    param($path)
    if(-not $path){return;}

    if((test-path $path) -or (-not $env:CDPATH)){
        Set-Location $path
        return
    }
    $cdpath = $env:CDPATH.split(";") | % { $ExecutionContext.InvokeCommand.ExpandString($_) }
    $npath = ""
    foreach($p in $cdpath){
        $tpath = join-path $p $path
        if(test-path $tpath){$npath = $tpath; break;}
    }
    if($npath){
        #write-host -fore yellow "Using CDPATH"
        Set-Location $npath
        return
    }

    set-location $path

}

Это не будет идеально, но работает ожидаемым образомВы можете продлить это, я думаю.Добавьте его в свой профиль.При необходимости также добавьте псевдоним, например, так:

set-alias -Name cd -value cd2 -Option AllScope
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...