Powershell — Как отфильтровать значение из переменной?

#powershell

#powershell

Вопрос:

Мне удается получить вывод из Invoke-Webrequest для переменной, как показано ниже. Теперь я хотел бы отфильтровать только значение 6895, как я могу добиться фильтра с помощью SourceIndex?

Внутренний текст SourceIndex


     131      8962     
    134      6847     
    137      6895     
    237      3831     
    240      1807     
    243      1141     
    347      7368     
    354      4822     
    357      9037     
    574      383 831  
    583      621 807  
    592      281 141  
  

скриншот

Ответ №1:

признаюсь, я понятия не имею, что вы имеете в виду how can I achieve the filter using sourceIndex? . [румянец]

однако объект, содержащий целевое значение, легко найти с помощью .Where() метода сбора. [усмешка]

что это делает…

  • создает набор данных для работы с
    замените все это вызовом вашего набора данных, используя Import-CSV или извлекая его из вашего I-WR вызова.
  • задает целевой текст
  • фильтрует коллекцию с помощью .Where() метода collection
  • присваивает вышеуказанное $Result переменной
  • отображает это на экране

код …

 #region >>> fake reading in a CSV file
#    in real life, repalce this entire block with a call to Import-CSV or the info from elsewhere
$IWR_Result = @'
sourceIndex, innerText
131, 8962
134, 6847
137, 6895
237, 3831
240, 1807
243, 1141
347, 7368
354, 4822
357, 9037
574, 383 831
583, 621 807
592, 281 141
'@ | ConvertFrom-Csv
#endregion >>> fake reading in a CSV file

$TargetInnerText = '6895'

$Result = $IWR_Result.Where({$_.InnerText -eq $TargetInnerText})

$Result
  

вывод…

 sourceIndex innerText
----------- ---------
137         6895