2016-09-14 9 views
0

Я использую функцию Prompt для использования пользовательской подсказки. У меня это есть, поэтому я получаю дату, текущий рабочий каталог и количество объектов. Где я нахожусь в ячейках $scripts или $modules, я бы хотел, чтобы текущий рабочий каталог обрезался.Использование условного разделительного пути в приглашении профиля

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

где часть строки функции ответственного заключается в следующем:

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

* Я хочу, чтобы текущий рабочий каталог обрезал * Усекать на что? Каков ваш текущий выход и что бы вы хотели, чтобы результат выглядел? –

+0

Я хочу, чтобы усечение удалило часть Users \ username \ Documents \ WindowsPowerShell, которая префикс скриптов или модулей – MaxRussell

+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 
+0

бинго. Отлично. – MaxRussell