Как в PowerShell извлечь пару "ключ-значение" из массива записей? - PullRequest
0 голосов
/ 25 мая 2020

Я читаю данные из файла CSV и хочу извлечь значение URL-адреса (ab c .com, def.com). Мой простой код возвращает данные в виде массива пар ключ-значение (см. Ниже), но мне не удалось извлечь отдельный элемент.

@ {Product = a; Описание = xyz; URL = ab c .com}

@ {Product = b; Описание = abc; URL = def.com}

Я пробовал индексировать массив, используя IndexOf, et c. Есть предложения?

    $list = Import-Csv ".\file"

    foreach ($item in $list) {

        write-host $item
    }

1 Ответ

2 голосов
/ 25 мая 2020

Это не массивы пар ключ-значение, а пользовательские объекты, созданные из строк вашего CSV.

Вы можете использовать поведение перечисления свойств PowerShell, чтобы получить все значения из свойства URL каждого объекта:

$allURLs = $list.URL

Или используйте ForEach-Object -MemberName, чтобы получить только одно значение свойства из коллекция:

$allURLs = $list |ForEach-Object -MemberName URL

Если вам нужно, чтобы это работало в PowerShell до версии 3.0, используйте Select-Object -ExpandProperty:

$allURLs = $list |Select-Object -ExpandProperty URL
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...