2016-08-22 2 views
4

Я уверен, что это очень простой вопрос PowerShell, но у меня есть JSON-файл, который я загрузки в PowerShell пользовательского объекта с ConvertFrom-Json и следующие select-object работыPowershell - Получение нескольких значений из вложенного объекта

$JsonContent.value | Select-Object -Property Name, @{Name = 'commit'; Expression = { $_.commit.author.date }} 

Я пытаюсь получить еще один столбец в вложенном объекте фиксации, и следующее НЕ работает, поэтому я надеюсь, что кто-то может помочь мне разобраться, как получить второе значение из вложенного объекта фиксации (я пробовал несколько вариантов, но не работал)

JsonContent.value | Select-Object -Property Name, @{Name = 'commit'; Expression = { $_.commit.author.date}, {$_.commit.commitId}} 

Благодаря

Скотт

ответ

4

Часть после Expression = ... является блок сценария, содержащий код, если вы хотите вернуть массив значений там быть значение для свойства commit затем просто изменить

Expression = { $_.commit.author.date}, {$_.commit.commitId} 

к

Expression = { $_.commit.author.date, $_.commit.commitId} 

так, что вы используете оператор commma, чтобы создать и вернуть 2-Elemen t array


Возможно, вы скорее захотите сделать какую-нибудь красивую строку, представляющую фиксацию, например.

Expression = { "{0} - {1}" -f $_.commit.author.date, $_.commit.commitId } 

В случае, если вы хотите commitId в совершенно другом столбце просто добавить еще одно свойство, как так

... -Property Name, @{Name = 'commit'; Expression = { $_.commit.author.date}}, @{Name = 'commitId'; Expression = {$_.commit.commitId}} 
+0

я сделал получить, чтобы работать прежде, но она возвращает его, как вы сказали в одном массив столбцов с обоими значениями. Два столбца в моем исходном элементе имеют имя и фиксацию. Есть ли способ получить его в свой собственный столбец, чтобы я мог иметь столбец имени, фиксации и commitID? Например, возможно ли иметь другое имя/выражение в select-object? –

+0

Ah ok - см. Мое обновление – DAXaholic

+0

Спасибо, это сработало отлично - не знаю, как я пропустил эту вариацию, поскольку я пытался так много –

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