当前位置:  开发笔记 > 编程语言 > 正文

不包含拆分方法

如何解决《不包含拆分方法》经验,为你挑选了1个好方法。

这是我的代码:

$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
type=logiciel
seuil=0
relanceAuto=yes

我希望这些变量得到"="符号旁边的值.但每次我启动程序时,它都会告诉我那些不是字符串:

[Microsoft.Powershell.Commands.MatchInfo]没有名为"split"的方法.

有人可以向我解释为什么它不起作用吗?



1> arco444..:

使用这Select-String意味着对象存储在您分配的变量中,而不是字符串,因此您需要在使用该.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    : {}

这表明您实际需要的数据包含在Line属性中,因此您可以像这样进行拆分:

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

推荐阅读
赛亚兔备_393
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有