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

时间:2016-09-14 09:41:59

标签: conditional prompt powershell-v4.0

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

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

其中负责提示函数的部分是:

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

1 个答案:

答案 0 :(得分:1)

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

$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