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”.
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”.
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:
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:
1
|
$object Export-Csv -NoTypeInformation -Path .\log.csv -Delimiter ’;’
|
Albo za pomocą funkcji:
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:
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
.