2013-05-30 25 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