Dowiedz się, jak tworzyć przejrzyste pliki CSV za pomocą skryptów PowerShell: użyj obiektów niestandardowych PowerShell w połączeniu z commandletem Export-csv.

Wprowadzenie do obiektów niestandardowych PowerShell

Obiekty niestandardowe są obiektami „generycznymi”, które można tworzyć samodzielnie w PowerShell.

Obiekt niestandardowy pozwala zdefiniować różne właściwości, które mogą być dynamicznie dodawane do skryptów PowerShell. Obiekt niestandardowy może mieć predefiniowane właściwości jak każdy inny obiekt lub można je dodawać dynamicznie w czasie wykonywania skryptu, gdy są potrzebne.

Istnieje wiele sposobów wykorzystania obiektów niestandardowych i przekształcenia ich w pomocne narzędzia. Możesz:

  • utrzymywać „zmienną stanu” w plikach dziennika lub
  • przekazywać wiele komunikatów jednocześnie do funkcji bez używania zbyt wielu zmiennych.

Generowanie obiektów niestandardowych PowerShell

Tworzysz obiekt niestandardowy PowerShell za pomocą commandletu „New-Object”.

PowerShell

1
$object = New-.Obiekt PSObject

W tym przykładzie, utworzyliśmy obiekt typu „PSCustomObject”.

Na razie obiekt początkowy jest pusty i nie posiada żadnych dodatkowych właściwości. Nowe właściwości można dodać za pomocą commandletu „Add-Member”.

PowerShell

1
$object | Add-..Member NoteProperty „Color” „Red”

W wyniku, obiekt ma teraz cechę „Color=red”. Możesz powtarzać tę czynność dowolną ilość razy i nadawać obiektowi różne cechy:

PowerShell

1
$object | Add-Member NoteProperty „Size” 1

Eksportowanie obiektów niestandardowych jako CSV

Główną zaletą jest możliwość przekazania całego obiektu do innych funkcji lub commandletów:

PowerShell

1
$object Export-Csv -NoTypeInformation -Path .\log.csv -Delimiter ’;’

Albo za pomocą funkcji:

PowerShell

1
2
3
4
5

function my-.export {
param($myInput)
$myInput Export-Csv -NoTypeInformation -Path .\log.csv -Delimiter ’;’
}
my-export $object

Tutaj utworzyliśmy plik .csv, który wygląda następująco:

Kolor Rozmiar
Czerwony 1

I odpowiednio tekst wygląda tak:

„Kolor”; „Rozmiar”
„Czerwony”; „1″

Można również połączyć kilka obiektów w listę lub tablicę, aby wyświetlić je zbiorczo:

PowerShell

1
2
3
4
5
6

.

7
8
9
10
11
12
13

$list = @()
$object1 = New-.Object PSObject
$object1 | Add-Member NoteProperty „Name” „Alice”
$object1 | Add-.Member NoteProperty „Color” „Red”
$object1 | Add-Member NoteProperty „Size” 1
$list += $object1
$object2 = New-Object PSObject
$object2 | Add-Member NoteProperty „Name” „Bob”
$object2 | Add-Member NoteProperty „Color” „Blue”
$object2 | Add-Member NoteProperty „Size” 2
$list += $object2
$list | Export-Csv -NoTypeInformation -Path .\log.csv -Delimiter ’;’

W rezultacie, Twój nowy plik .csv automatycznie zawiera oba obiekty:

.

Name Color Size
Alice Red 1
Bob Blue 2

Zgodnie, tekst pojawia się jako:

„Nazwa”; „Kolor”; „Rozmiar”
„Alicja”; „Czerwony”; „1″
„Bob”; „Niebieski”; „2″

Podsumowując, obiekty niestandardowe PowerShell w połączeniu z commandletem Export-csv są skutecznym i użytecznym narzędziem do eksportowania zbiorów danych do plików .csv.

FirstAttribute AG – Microsoft Consulting Partner for
Migration and Active Directory

AD Consulting | AD Migration

.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.