从电源外壳管道

问题描述:

获得值我有数据从另一个命令的输出从电源外壳管道

testCommand未来将打印这样的事情

a: 1 
b: test 
c: an3 

我希望到grep的特定属性testCommand | findstr 'a',打印a: 1的价值。

但我想提取值1。无法弄清楚的方式!如果如果你与=更换:输出不存在打印默认值default

+0

查找如何使用' - 拆分“并使用它来分割冒号。您可能还希望在'findstr'上使用'Select-String',以便将所有内容保存为PowerShell对象。 – arco444

+3

什么是testCommand发送管道?如果是字符串,则有更好的方法进行过滤,如果是对象,则将其作为对象进行处理。 – Richard

+0

@理查德,这是字符串。这不是预定义的PS功能或任何东西。这是自定义'bat'文件正在将数据打印到控制台 – Reddy

,你可以把它管道到ConvertFrom-StringData,并得到一个不错的哈希表来代替:

$values = testCommand 
$ValueTable = $values -replace ": ","=" |ConvertFrom-StringData 
$ValueTable["a"] # this will return the value "1"