Вы можете использовать -Replace
или Split-Path
для эффективного удаления символов, начинающихся с конечного \
.
Заменить Operator Solution:
$s = "AAA\BBB\CCC\DDD\EEE"
$s -Replace "(.*)\\.*",'$1'
Решение Split-Path:
$s = "AAA\BBB\CCC\DDD\EEE"
Split-Path -Path $s
Объяснение:
Оператор -Replace
использует шаблон регулярных выражений для поиска соответствия и заменяетс любым указанным значением.В этом случае мы используем $1
, поскольку он представляет группу захвата 1 ((.*)
) в регулярном выражении (.*)\\.*
..*
- жадное совпадение всех персонажей.\
требует экранирования в регулярном выражении, поэтому шаблон содержит \\
.Финальный .*
просто соответствует оставшимся символам после последнего \
, так что они заменяются.Порядок (.*)\\
важен, чтобы жадное совпадение остановилось на последнем найденном символе \
.См. Оператор замены для получения дополнительной информации.
Поскольку Split-Path
без дополнительных параметров удаляет все, начиная с последнего \
, его можно использовать для этого конкретного сценария.См. Split-Path для получения дополнительной информации.