2014-11-17 2 views
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 

.

+0

Какова цель первых 2-х линий вашей функции? –

+0

Вся цель заключается в том, что я буду в течение довольно длинного сценария с большим количеством функций, которые ищут строки в разных файлах, которые должны быть там. Я хочу, чтобы функция вызывала меньше всего кода. И выводится только строка. Не две другие выходные линии, которые я получаю. – Gatewarden

+0

Итак, поскольку первые 2 строки, по-видимому, не служат никакой реальной цели: почему бы не удалить их, поскольку они являются причиной того, что вызывает нежелательный вывод? –

ответ

3

Select-String возвращает информацию об объекте выбора, вы можете выбрать только совпадающую строку, если вы хотите:

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

 Смежные вопросы

  • Нет связанных вопросов^_^