Проблема с PowerShell Trim (), которая также обрезает букву перед обратной косой чертой - PullRequest
1 голос
/ 03 мая 2019

У меня проблема с .Trim() в PowerShell.

Итак, вот моя строка сценариев.

$path = 'C:\Projects\20190412_Release111.22.S2.FP\PowerShell'
$trimpath = $path.Trim('\PowerShell')
Write-Host $trimpath

при обрезке '\ Powershell' по пути, вывод должен быть:

C:\Projects\20190412_Release111.22.S2.FP

но фактический результат:

C:\Projects\20190412_Release111.22.S2.F

, в котором отсутствует буква «P» из названия «20190412_Release111.22.S2.F», мне интересно, имеет ли условие .trim () переменную длину, поэтому он также обрезает букву «P».

1 Ответ

1 голос
/ 03 мая 2019

Когда вы передаете символы в функцию Trim , она обрезает любую строку, которая соответствует шаблону.

Он удаляет 'p' из вашего пути, потому что во входной строке, которую вы передали, есть 'p'. Если бы по какой-то причине перед словом «PowerShell» было указано несколько символов «P», все это тоже будет удалено:

$path = 'C:\Projects\20190412_Release111.22.S2.FPPPPPP\PowerShell'
$trimpath = $path.trim('\PowerShell')
# trimpath is 'C:\Projects\20190412_Release111.22.S2.F'

В этом случае я думаю, что $trimpath = $path.Replace('\PowerShell', '') будет лучше.

...