Descubra como criar arquivos CSV claramente dispostos com a ajuda dos scripts PowerShell: use o PowerShell Custom Objects combinado com o comando Export-csv.
Introduzindo Objectos Personalizados PowerShell
Os Objectos Personalizados são objectos “genéricos” que pode criar você mesmo no PowerShell.
Um objecto personalizado permite-lhe definir várias propriedades que podem ser dinamicamente adicionadas aos scripts PowerShell. Um objecto personalizado pode ter propriedades pré-definidas como qualquer outro objecto ou pode adicioná-las dinamicamente durante o tempo de execução quando necessário.
Existem muitas formas de utilizar objectos personalizados e transformá-los em ferramentas úteis. Você pode:
- manter uma “variável de status” em arquivos de log ou
- transferir múltiplas mensagens simultaneamente para uma função sem usar muitas variáveis.
Gerar objetos personalizados PowerShell
Você cria um objeto personalizado PowerShell com o comando “New-Object”.
1
|
$objecto = Novo…Objeto PSObject
|
Neste exemplo, criámos um objecto do tipo “PSCustomObject”.
Por enquanto o objecto inicial está vazio e não tem mais características. Você pode adicionar novas funcionalidades usando o comando “Add-Member”.
1
|
$object | Add-Membro NotaPropriedade “Cor” “Vermelha”
|
Como resultado, o objeto agora tem a característica “Cor=vermelho”. Você pode repetir isso quantas vezes quiser e dar ao objeto características diferentes:
1
|
$object | Add-Member NoteProperty “Tamanho” 1
|
Exportar Objectos Personalizados como CSV
Um grande benefício é que você pode transferir o objecto inteiro para outras funções ou comandos:
1
|
$object Export-Csv -NoTypeInformation -Path .\log.csv -Delimiter ‘;’
|
Or com uma função:
1
2
3
4
|
função my-exportar {
param($myInput)
$myInput Export-Csv -NoTypeInformation -Path .\log.csv -Delimiter ‘;’
}
my-export $object
|
Aqui criamos um .csv que se parece com isto:
Cor | Tamanho |
Vermelho | >1 |
E, portanto, o texto aparece assim:
>
“Cor”; “Tamanho”
“Vermelho”; “1″
>
Vocês também podem combinar vários objetos em uma lista ou array para exibi-los coletivamente:
1
2
3
4
6
7
8
9
10
11
12
13
|
$list = @()
$object1 = Novo-Object PSObject
$object1 | Add-Member NoteProperty “Name” “Alice”
$object1 | Add-Membro NoteProperty “Cor” “Vermelho”
$object1 | Add-Member NoteProperty “Tamanho” 1
$list += $object1
$object2 = New-Object PSObject
$object2 | Add-Membro NoteProperty “Nome” “Bob”
$object2 | Add-Member NoteProperty “Cor” “Azul”
$object2 | Add-Member NoteProperty “Tamanho” 2
$list += $object2
$list | Export-Csv -NoTypeInformation -Path .\log.csv -Delimiter ‘;’
|
Como resultado, o seu novo .csv contém automaticamente os dois objetos:
Nome | Cor | Tamanho |
Alice | Vermelho | 1 |
Bob | Azul | 2 |
De acordo, o texto aparece como:
“Nome”; “Cor”; “Tamanho”
“Alice”; “Vermelho”; “1″
“Bob”; “Azul”; “2″
Em resumo, os Objectos Personalizados PowerShell combinados com o comando Export-csv são uma ferramenta eficaz e útil para exportar conjuntos de dados para .csv.
FirstAttribute AG – Microsoft Consulting Partner for
Migration and Active Directory
AD Consulting | Migração AD