Я пытаюсь извлечь конкретные значения из объекта PowerShell, чтобы создать CSV для использования в другом приложении.Более конкретно, я использовал Microsoft Graph API для загрузки событий в календаре в течение установленного периода времени.
Я использовал эту команду в PowerShell для получения исходных данных
$data = Invoke-RestMethod -Uri "https://graph.microsoft.com/v1.0/users/{username}/calendar/events?startDateTime=2019-01-01T00:00:00.0000000&endDateTime=2019-01-30T23:59:00.0000000&select=subject,start,end,IsAllDay,ResponseStatus"
ОтсюдаЯ могу получить доступ к каждому элементу в переменной $data
, чтобы получить хороший список событий.
$data |
ForEach-Object {$_.value} |
Select -Property subject, start, end, IsAllDay, ResponseStatus
Вывод:
subject : Event today
start : @{dateTime=2019-01-18T11:00:00.0000000; timeZone=GMT Standard Time}
end : @{dateTime=2019-01-18T11:30:00.0000000; timeZone=GMT Standard Time}
isAllDay : False
responseStatus : @{response=none; time=0001-01-01T00:00:00Z}
subject : Event tomorrow
start : @{dateTime=2019-01-18T09:45:00.0000000; timeZone=GMT Standard Time}
end : @{dateTime=2019-01-18T12:15:00.0000000; timeZone=GMT Standard Time}
isAllDay : False
responseStatus : @{response=none; time=0001-01-01T00:00:00Z}
Я хотел бы выбрать dateTime
данные в start
и end
объектах, так что это выглядит так:
subject : Event today
start : 2019-01-18T11:00:00.0000000
end : 2019-01-18T11:30:00.0000000
isAllDay : False
responseStatus : @{response=none; time=0001-01-01T00:00:00Z}
subject : Event tomorrow
start : 2019-01-18T09:45:00.0000000
end : 2019-01-18T12:15:00.0000000
isAllDay : False
responseStatus : @{response=none; time=0001-01-01T00:00:00Z}
Я могу сделать это в окне PowerShell с помощью команды
$data.value.[0].start.dateTime
, но как я могу это сделатьэто с помощью команды выбора выше?