从powershell中的字符串中过滤空格

问题描述 投票:0回答:2

例如,我想过滤掉文件名,我想做的是过滤到下划线,其余部分保留。Info10_ComputerHostName所以我跑

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

当我输出变量时,我得到的是“ ComputerHostName”

我想要“ ComputerHostName”

如何删除它总是返回的空格?

powershell parsing variables whitespace
2个回答
0
投票
$FinalFileName = ([regex]::Match($FileName,'([^_]*)_(.*)'))
$FinalFileName.Groups[2].Value

#or

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


0
投票

使用$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'
© www.soinside.com 2019 - 2024. All rights reserved.