2013-05-30 23 views
-1

我想从Powershell中的reference对象中拉出一个字符串,但我没有成功。下面是我想:选择字符串在Powershell中不起作用

Select-String -Pattern "ro.product" -InputObject $output.Value 

我也曾尝试:

Select-String -InputObject $output.Value -Pattern "ro.product" 

$output.value是从Android手机构建属性的列表。我使用.getType()函数来确定类型是什么,$output.value是一个字符串,而$outputreference。我是Powershell的新手,我希望有人能为此提供一些指导。我见过的每个参考文献String-Select涉及pipe-lining,并且因为我已经从函数中设置了$output,所以似乎不起作用(流水线)。

UPDATE:例如源文本

# begin build properties 
# autogenerated by buildinfo.sh 
ro.build.id=IMM76D 
ro.build.display.id=N861V1.0.0B09 
ro.build.version.incremental=20121128.160026.30230 
ro.build.version.sdk=15 
# etc ... 

回答

7

尝试:

$output.value | select-string -simplematch -pattern "ro.product". 

如果这不起作用,那么output.value $可能不包含你认为它包含的内容。源文件也可能使用了unix行尾(LF),在这种情况下,它可能被视为单行。将其转换为使用CRLF并重试。

+2

你应该指定'SimpleMatch'还是在模式中使用转义?我*怀疑*当前答案也会匹配“roxproduct”,例如,如果该模式被视为正则表达式。 –

+0

你完全正确。在这一点上,这是一个失败的原因,但我会纠正它。 – x0n