Фильтрация пробелов из строки в PowerShell - PullRequest
0 голосов
/ 28 мая 2020

Я пытаюсь отфильтровать имя файла, например, то, что я хочу сделать, это отфильтровать до подчеркивания и оставить все остальное. Info10_ComputerHostName, поэтому я запускаю

$FileName="Info10_ComputerHostName"
$FinalFileName = $FileName -split("*._")

Когда я выводю переменную, что я получаю «ComputerHostName»

Что я хочу «ComputerHostName»

Как удалить пробел, который он всегда возвращается?

Ответы [ 2 ]

0 голосов
/ 28 мая 2020

Используйте $FinalFileName[1]. Доказательство:

$FileName="Info10_ComputerHostName"
$FinalFileName = $FileName -split ".*_"
$FinalFileName.GetType().FullName
$FinalFileName.Count
"`$FinalFileName   ='$FinalFileName'"
"`$FinalFileName[0]='$($FinalFileName[0])'"
"`$FinalFileName[1]='$($FinalFileName[1])'"
System.String[]
2
$FinalFileName   =' ComputerHostName'
$FinalFileName[0]=''
$FinalFileName[1]='ComputerHostName'

Другой подход - используйте оператор -replace вместо -split следующим образом:

$FileName="Info10_ComputerHostName"
$FinalFileName = $FileName -replace "^.*?_"
$FinalFileName.GetType().FullName
"`$FinalFileName   ='$FinalFileName'"
System.String
$FinalFileName   ='ComputerHostName'
0 голосов
/ 28 мая 2020
$FinalFileName = ([regex]::Match($FileName,'([^_]*)_(.*)'))
$FinalFileName.Groups[2].Value

#or

$FileName.Split('_')[1]

...