Tudja meg, hogyan hozhat létre áttekinthető CSV-fájlokat PowerShell-szkriptek segítségével: használja a PowerShell Custom Objects-t az Export-csv parancsszóval kombinálva.
A PowerShell Custom Objects bemutatása
A Custom Objects olyan “általános” objektumok, amelyeket saját maga hozhat létre a PowerShellben.
A Custom Objects segítségével különböző tulajdonságokat határozhat meg, amelyeket dinamikusan hozzáadhat a PowerShell szkriptekhez. Egy egyéni objektumnak lehetnek előre definiált tulajdonságai, mint bármely más objektumnak, vagy dinamikusan hozzáadhatja őket futás közben, amikor szükséges.
Az egyéni objektumok felhasználásának és hasznos eszközzé alakításának számos módja van. Lehet:
- fenntartani egy “állapotváltozót” a naplófájlokban, vagy
- több üzenetet egyszerre egy függvénybe továbbítani anélkül, hogy túl sok változót használnánk.
PowerShell egyéni objektumok létrehozása
Egy PowerShell egyéni objektumot a “New-Object” parancssorral hozhatunk létre.
1
|
$object = New-objekt = New-objekt.Object PSObject
|
Ebben a példában, létrehoztunk egy “PSCustomObject” típusú objektumot.
A kezdeti objektum egyelőre üres, és nem rendelkezik további jellemzőkkel. Új funkciókat az “Add-Member” parancssor segítségével adhatunk hozzá.
1
|
$object | Add-Member NoteProperty “Color” “Red”
|
Az eredmény, az objektum mostantól a “Color=red” tulajdonsággal rendelkezik. Ezt annyiszor megismételheti, ahányszor csak akarja, és különböző tulajdonságokkal ruházhatja fel az objektumot:
1
|
$object | Add-Member NoteProperty “Size” 1
|
Egyéni objektumok exportálása CSV-ként
A fő előnye, hogy a teljes objektumot átvihetjük más függvényekbe vagy commandletekbe:
1
|
$object Export-Csv -NoTypeInformation -Path .\log.csv -Delimiter ‘;’
|
Vagy egy függvénnyel:
1
2
3
4
5
|
function my-export {
param($myInput)
$myInput Export-Csv -NoTypeInformation -Path .\log.csv -Delimiter ‘;’
}
my-export $object
|
Itt létrehoztunk egy .csv fájlt, ami így néz ki:
Color | Size |
Red | 1 |
És ennek megfelelően a szöveg így néz ki:
“Szín”; “Méret”
“Piros”; “1″
Több objektumot is kombinálhat listába vagy tömbbe, hogy együttesen jelenítse meg őket:
1
2
3
4
5
5
6
. 7
8
9
10
11
12
13
|
$list = @()
$object1 = New-Object PSObject
$object1 | Add-Member NoteProperty “Name” “Alice”
$object1 | Add-Tag 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 ‘;’
|
Az eredmény, az új .csv fájl automatikusan tartalmazza mindkét objektumot:
Név | Szín | Méret |
Alice | Red | 1 |
Bob | Blue | 2 |
Az alábbiak szerint, a szöveg a következőképpen jelenik meg:
“Name”; “Color”; “Size”
“Alice”; “Red”; “1″
“Bob”; “Blue”; “2″
A PowerShell Custom Objects az Export-csv commandlet-tel kombinálva hatékony és hasznos eszköz adathalmazok exportálására .csv fájlokba.
FirstAttribute AG – Microsoft Consulting Partner for
Migration and Active Directory
AD Consulting | AD Migration
.