例如,我想过滤掉文件名,我想做的是过滤到下划线,其余部分保留。Info10_ComputerHostName所以我跑
$FileName="Info10_ComputerHostName"
$FinalFileName = $FileName -split("*._")
当我输出变量时,我得到的是“ ComputerHostName”
我想要“ ComputerHostName”
如何删除它总是返回的空格?
$FinalFileName = ([regex]::Match($FileName,'([^_]*)_(.*)'))
$FinalFileName.Groups[2].Value
#or
$FileName.Split('_')[1]
使用$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'