1

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

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

要输出。

4

1 回答 1

3

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

$Match = Get-ChildItem -path $path | Select-String -pattern $pattern 
$Match | Select-Object -ExpandProperty Line
于 2014-11-17T14:04:58.420 回答