在配置文件提示符中使用条件分隔路径



我使用Prompt函数来使用自定义提示符。我得到了它,所以我得到了日期,当前工作目录和对象的数量。当我在$scripts$modules位置时,我希望截断当前工作目录。

$scripts = "$(Split-Path $profile)Scripts"
$modules = "$(Split-Path $profile)Modules"

,其中Prompt函数负责的部分如下:

Write-Host ($PWD) -NoNewline -ForegroundColor Gray

也许你正在寻找这样的东西:

$basedir = Split-Path $profile
$pattern = [regex]::Escape($basedir) + '\(Scripts|Modules)(\.*|$)'
$path = if ($PWD.Path -match $pattern) {
    $PWD.Path.Replace($basedir, '~')
} else {
    $PWD.Path
}
Write-Host $path -NoNewline -ForegroundColor Gray

或者像这样:

$pattern = [regex]::Escape((Split-Path $profile)) + '\((Scripts|Modules)(\.*|$))'
Write-Host ($PWD.Path -replace $pattern, '~$1') -NoNewline -ForegroundColor Gray

最新更新