Powershell 不';不包含拆分方法

Powershell 不';不包含拆分方法,powershell,split,Powershell,Split,这是我的密码: $fPath = Get-Content .\param.txt | Select-String 'adresse' -SimpleMatch fPath = $fPath.split("=")[1] $fPath $paramListe = Get-Content .\param.txt | Select-String 'type' -SimpleMatch $paramListe = $paramListe.split("=")[1] $paramListe $seuil

这是我的密码:

$fPath = Get-Content .\param.txt | Select-String 'adresse' -SimpleMatch
fPath = $fPath.split("=")[1]
$fPath

$paramListe = Get-Content .\param.txt | Select-String 'type' -SimpleMatch
$paramListe = $paramListe.split("=")[1]
$paramListe

$seuil = Get-Content .\param.txt | Select-String 'seuil' -SimpleMatch
$seuil = $seuil.split("=")[1]
$seuil = $seuil

$relanceAuto = Get-Content .\param.txt | Select-String 'relanceAuto' -SimpleMatch
$relanceAuto = $relanceAuto.split("=")[1]
$relanceAuto
下面是导入的.txt文件:

adresse=o:\***************\DataIntegrator
类型=逻辑
seuil=0
relanceAuto=是
我希望这些变量得到“=”符号旁边的值。但每次我启动程序时,它总是告诉我这些不是字符串:

[Microsoft.Powershell.Commands.MatchInfo]没有名为“拆分”的方法


有人能解释一下为什么它不起作用吗?

使用
选择字符串
意味着对象存储在您分配的变量中,而不是字符串中,因此在使用
.split()
方法之前,您需要获取字符串值

如果您这样做:

PS > $relanceAuto.gettype()

IsPublic IsSerial Name                                     BaseType
-------- -------- ----                                     --------
True     False    MatchInfo                                System.Object
您可以看到,
$relanceAuto
实际上是一个
MatchInfo
对象。您可以通过以下方式查看与其关联的属性:

PS > $relanceAuto | Format-List *


IgnoreCase : True
LineNumber : 4
Line       : relanceAuto=yes
Filename   : InputStream
Path       : InputStream
Pattern    : relanceAuto
Context    :
Matches    : {}
这将显示实际需要的数据包含在
属性中,因此可以按如下方式进行拆分:

PS > $relanceAuto.Line.split('=')[1]
yes

使用
选择字符串
意味着对象存储在指定的变量中,而不是字符串中,因此在使用
.split()
方法之前,需要获取字符串值

如果您这样做:

PS > $relanceAuto.gettype()

IsPublic IsSerial Name                                     BaseType
-------- -------- ----                                     --------
True     False    MatchInfo                                System.Object
您可以看到,
$relanceAuto
实际上是一个
MatchInfo
对象。您可以通过以下方式查看与其关联的属性:

PS > $relanceAuto | Format-List *


IgnoreCase : True
LineNumber : 4
Line       : relanceAuto=yes
Filename   : InputStream
Path       : InputStream
Pattern    : relanceAuto
Context    :
Matches    : {}
这将显示实际需要的数据包含在
属性中,因此可以按如下方式进行拆分:

PS > $relanceAuto.Line.split('=')[1]
yes

除了arco444所述之外,还可以使用双引号对现有代码进行字符串转换

$relanceAuto = "$relanceAuto".Split("=")[1]

除了arco444所述之外,还可以使用双引号对现有代码进行字符串转换

$relanceAuto = "$relanceAuto".Split("=")[1]

伟大的请记住,如果可以解决您的问题,最好使用
get member
来显示属性(以及方法、事件等)@Kayasax我不确定我是否同意“更好”,它们可以做不同的事情。仅用于显示属性,FL就足够了,并且更容易理解,用于学习目的,尽管gm肯定更全面!请记住,如果可以解决您的问题,最好使用
get member
来显示属性(以及方法、事件等)@Kayasax我不确定我是否同意“更好”,它们可以做不同的事情。仅在显示属性时,FL就足够了,更容易理解,用于学习目的,尽管gm肯定更全面,我是通过
Select String
,,仅引用Chris建议的类似公式的
$
允许我再次使用
split
方法。我正在通过
Select String
传输内容,仅引用Chris建议的类似公式的
$
允许我再次使用
split
方法。