函数内置搜索输出太多

时间:2014-11-17 13:58:04

标签: function powershell get-childitem

我将在一个更大的脚本中重新搜索已定义文件中的字符串。

function ConfigSearch([String] $path, [String] $pattern){
    [string]$path
    [string]$pattern
    Get-ChildItem -path $path | Select-String -pattern $pattern
}

ConfigSearch c:\smhost SMHOST

这是一个例子。输出将是

PS C:\Backup> C:\test\filesearch.ps1
c:\smhost
SMHOST

C:\smhost\smhost.conf:1:SMHOST = "D:\ca\webagent cr010\win64\config\smhost.conf"

我除了C:\smhost\smhost.conf:1:SMHOST = "D:\ca\webagent cr010\win64\config\smhost.conf"之外别无其他。或者更喜欢"D:\ca\webagent cr010\win64\config\smhost.conf",我正在寻找的内容。


你的意思是像这样添加它们:

function ConfigSearch([String] $path, [String] $pattern){
    [string]$path
    [string]$pattern
    $Matches = Get-ChildItem -path $path | Select-String -pattern $pattern 
    $Matches | Select-Object -ExpandProperty Line
}
ConfigSearch c:\smhost SMHOST

一个问题解决了,但现在输出

c:\smhost
SMHOST
SMHOST = "D:\ca\webagent cr010\win64\config\smhost.conf"

我不想要

c:\smhost
SMHOST

输出。

1 个答案:

答案 0 :(得分:3)

Select-String返回一个选择信息对象,如果您愿意,可以只选择匹配的行:

$Match = Get-ChildItem -path $path | Select-String -pattern $pattern 
$Match | Select-Object -ExpandProperty Line