Estou tentando obter o seguinte com dados CSV importados no Powershell:
o CSV tem a seguinte estrutura:
| FirstName | LastName | Tier |
| --------- | ------- | ---- |
| George | Smith | 0 |
| John | Fritz | 1 |
| Thomas | Adams | 1 |
| Manuel | Evans | 0 |
Eu importo os dados CSV da seguinte maneira:
$csv = Import-Csv csvfile.csv
Agora, aqui está o problema. Estou tentando adicionar mais algumas linhas ao objeto
$csv
Se um usuário for do nível 0, o mesmo usuário deverá ser adicionado ao objeto com o nível 1.
O objeto $csv resultante deve se parecer com:
| FirstName | LastName | Tier |
| --------- | ------- | ---- |
| George | Smith | 0 |
| John | Fritz | 1 |
| Thomas | Adams | 1 |
| Manuel | Evans | 0 |
| George | Smith | 1 |
| Manuel | Evans | 1 |
A ordem na qual as novas linhas da Camada 1 são colocadas no objeto não importa. Eles devem estar em algum lugar no objeto com todos os dados originais. Também não preciso das linhas de camada 1 resultantes em nenhum arquivo CSV. Eu só preciso que essas novas linhas (membros) façam parte do objeto $ csv com todos os outros dados intocados para que eu possa iterar pelos dados originais e novos no mesmo objeto usando um loop foreach.
O que eu tentei até agora sem resultados positivos:
$csv = Import-Csv csvfile.csv
foreach ($User in $csv){
$tier = $User.Tier -replace '\s',''
if($tier -eq '0'){
$csv+= @{FirstName= $User.FirstName; LastName=$User.LastName; Tier='1'}
}
}
outra tentativa sem resultados positivos:
$csv = Import-Csv csvfile.csv
foreach ($User in $csv){
$tier = $User.Tier -replace '\s',''
if($tier -eq '0'){
$csv | Add-Member -MemberType NoteProperty -Name 'FirstName' -Value $User.FirstName -Force
$csv | Add-Member -MemberType NoteProperty -Name 'LastName' -Value $User.LastName -Force
$csv | Add-Member -MemberType NoteProperty -Name 'Tier' -Value '1' -Force
}
}
Depois de falhar miseravelmente, vim buscar ajuda dos Wizards of StackOverflow.
Como posso conseguir isso? Como obtenho as linhas de nível 0 duplicadas com um valor de nível diferente, deixando todos os outros dados intocados no mesmo objeto?