要从输出中拆分的PowerShell命令

要从输出中拆分的PowerShell命令,powershell,Powershell,我的文件如下所示。我只需要列表中的carId列表 我正在尝试以以下方式运行命令: Get-Content Carlist.txt | select-string carId | $_.split(':')[2].split(' ') Attachments : {} State : available accessory : {} carId : 53se carType : bmw Attachments

我的文件如下所示。我只需要列表中的carId列表

我正在尝试以以下方式运行命令:

Get-Content Carlist.txt | select-string carId | $_.split(':')[2].split(' ')

Attachments      : {}
State            : available
accessory            : {}
carId         : 53se
carType       : bmw

Attachments      : {}
State            : available
accessory            : {}
carId         : 23nu
carType       : audi

Attachments      : {}
State            : available
accessory            : {}
carId         : 94it
carType       : merc

第二个命令的结果是一个列表,而在第三个命令中,您试图对该列表的单个元素执行操作。要做到这一点,你需要。 因此,您的代码变为(包括一些修复):


它的投掷错误。。我不知道为什么我们需要在命令中使用“替换”,因为我需要拆分类似的子字符串。。PS C:\Users\Admin\Desktop>Get Content car.txt |选择字符串carId carId:53se carId:23nu carId:94it我只需要53se 23nu 94it我收到此错误方法调用失败,因为[Microsoft.PowerShell.Commands.MatchInfo]不包含名为“split”的方法。在第1行,字符数为62+。。。t-string carId | Foreach Object{$\.split(':')[1]-替换'\s','}+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~类别信息:无效操作:(:)[],RuntimeException+FullyQualifiederRoid:MethodNotFound我在第一个答案中忘记添加ToString()修复。我使用了replace,因为split的输出取决于文件中的空格,这并不理想
Get-Content Carlist.txt | select-string carId | Foreach-Object { $_.ToString().split(':')[1] -replace '\s','' }