Разрыв строки в PowerShell для создания CVS - PullRequest
0 голосов
/ 25 сентября 2018

Есть ли какой-нибудь подход к разрыву строки в одном столбце в CSV, построенном PowerShell?Например,

Role     |Scope
--------------------
Role 01  |Scope 01
         |Scope 02
--------------------
Role 02  |Scope 01
         |Scope 03

Я не уверен, достижимо ли это.Если нет, то какой будет поддерживаемый формат, например HTML?

[Обновлено] Ниже приведена конструкция моего объекта CSV

class CsvObj {
   [Object] ${Role}
   [Object] ${Scope}
}

$roleList= Get-Role
$array = @()

ForEach ($role in $roleList) {
   $roleObj = [CsvObj]::new()
   $roleObj.Role = $role.Role
   $roleObj.Scope = $role.Scope
   $array += $roleObj
}
$array | Export-Csv -Path C:\file.csv

В каждой роли может быть больше областей действия, и я хотел бы сгруппировать их должным образом.

Ответы [ 2 ]

0 голосов
/ 25 сентября 2018

В интересах получения данных, которые потом легко обрабатывать, я бы посоветовал вам вместо этого подготовить их следующим образом:

Role     Scope
----     -----
Role 01  Scope 01
Role 01  Scope 02
Role 02  Scope 01
Role 02  Scope 03

Таким образом, вы всегда можете просто сгруппировать их, выполнив что-то вроде

Import-Csv foo.csv | group Role

тогда как альтернатива для другой версии была бы немного более сложной.

Вы можете просто вставить разрывы строк в ячейки CSV, но для этого я бы сказал, что они нелучшая идеяЕсли вам это нужно для удобства отображения, тогда CSV, вероятно, неправильный формат, и HTML может быть лучшим вариантом.

0 голосов
/ 25 сентября 2018

Просто вставьте символ новой строки (`n) между областями:

[pscustomobject]@{Role='Role 01';Scope="Scope 01`nScope 02"},
[pscustomobject]@{Role='Role 02';Scope="Scope 01`nScope 03"} | ConvertTo-Csv
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...