我使用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