如何使powershell缩短“>”之前的长目录

时间:2018-05-19 10:30:23

标签: powershell directory alias

例如,如果我在profile.ps1中设置了别名

$ws='C:\Users\Jack\folder0\folder1\folder2'

我cd到工作区位置cd $ws

如下所示

PS C:\Users\Jack\folder0\folder1\folder2\>

现在,我想知道是否有办法让它显示如下或类似

PS $ws>

这是我第一次在StackOverflow上提问。如果有什么不合适的,请给我一些建议。

1 个答案:

答案 0 :(得分:2)

您可以修改提示功能以执行任何操作。如果您只想检查单个变量,可以执行以下操作:

$ws = "c:\users\frode"

function prompt {
    $CurrentLocation = $executionContext.SessionState.Path.CurrentLocation.Path
    if($CurrentLocation -like "$ws*") {
        $CurrentLocation = $CurrentLocation -replace [regex]::Escape($ws), '$ws'
    }

    "PS $($CurrentLocation)$('>' * ($nestedPromptLevel + 1)) ";
}

输出:

PS C:\Users> cd .\frode

PS $ws> cd .\Desktop

PS $ws\Desktop> 

如果需要支持多个变量,可以将路径存储在哈希表中并检查该路径,或使用Get-Variable搜索包含有效路径的变量。请务必排除始终是您当前位置的前$PWD