例如,我正在尝试过滤文件名,我想要做的是过滤到下划线并保留其余部分。Info10_ComputerHostName 所以我运行
$FileName="Info10_ComputerHostName"
$FinalFileName = $FileName -split("*._")
当我输出变量时,我得到“ComputerHostName”
我想要什么“计算机主机名”
如何删除它总是返回的空格?
例如,我正在尝试过滤文件名,我想要做的是过滤到下划线并保留其余部分。Info10_ComputerHostName 所以我运行
$FileName="Info10_ComputerHostName"
$FinalFileName = $FileName -split("*._")
当我输出变量时,我得到“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'