Geek School: A tanulás formázása, szűrése és összehasonlítása a PowerShell-ben

Tartalomjegyzék:

Geek School: A tanulás formázása, szűrése és összehasonlítása a PowerShell-ben
Geek School: A tanulás formázása, szűrése és összehasonlítása a PowerShell-ben

Videó: Geek School: A tanulás formázása, szűrése és összehasonlítása a PowerShell-ben

Videó: Geek School: A tanulás formázása, szűrése és összehasonlítása a PowerShell-ben
Videó: Renault Laguna 2 prezentacja radia SEICANE H203G 2024, Április
Anonim
Ebben a Geek Iskola kiadásában a csővezeték formázását, szűrését és összehasonlítását tekintjük át.
Ebben a Geek Iskola kiadásában a csővezeték formázását, szűrését és összehasonlítását tekintjük át.

Olvassa el a sorozatban szereplő cikkeket:

  • További információ a Windows PowerShell automatizálásáról
  • A PowerShell-ben található cmdletek használatának elsajátítása
  • A PowerShell objektumainak használata

És egész héten maradjon a sorozatban.

Alapértelmezett formázás

Amikor először elkezdtem a PowerShell-lel, azt hittem, minden mágia, de az igazság az, hogy csak egy kis időbe telik, hogy megértsük, mi folyik a motorháztető alatt. Ugyanez igaz a PowerShell formázó rendszerre. Valójában, ha a Get-Service cmdletet futtatja, a létrehozott kimenet csak 3 tulajdonságot jelenít meg: Állapot, Név és DisplayName.

De ha bevezeti a Get-Service szolgáltatást a Get-Memberhez, látja, hogy a ServiceController objektumai sokkal többet tartalmaznak, mint ezek a három tulajdonságok, tehát mi folyik itt?
De ha bevezeti a Get-Service szolgáltatást a Get-Memberhez, látja, hogy a ServiceController objektumai sokkal többet tartalmaznak, mint ezek a három tulajdonságok, tehát mi folyik itt?
A válasz egy rejtett fájlban található, amely meghatározza, hogy a beépített cmdletek többsége megjeleníti-e a kimenetét. A megértéshez írja be a következőket a shellbe, és nyomja meg az enter billentyűt.
A válasz egy rejtett fájlban található, amely meghatározza, hogy a beépített cmdletek többsége megjeleníti-e a kimenetét. A megértéshez írja be a következőket a shellbe, és nyomja meg az enter billentyűt.

notepad C:WindowsSystem32WindowsPowerShellv1.0DotNetTypes.format.ps1xml

Ha a Notepad Find funkciót használjuk, gyorsan átugorhatunk a Get-Service cmdlet kimenetét részletező részre a ServiceController típus keresésével.

Hirtelen láthatja, hogy a motorháztető alatt a PowerShell formázza a Csővezetékben lévő olyan objektumokat, amelyek a ServiceController típusból származnak, és három oszlopból álló oszlop létrehozása: Állapot, Név és MegjelenítésName. De mi van akkor, ha a típus, amellyel foglalkozik, nincs bejegyzés a fájlban, vagy bármilyen más formátumú fájl az adott ügyben? Nos, ez elég egyszerű. Ha a csővezetékből kilépő objektumnak 5 vagy több tulajdonsága van, a PowerShell felsorolja az összes objektum tulajdonságait egy listában; ha kevesebb mint 5 tulajdonság van, akkor táblázatban jeleníti meg őket.
Hirtelen láthatja, hogy a motorháztető alatt a PowerShell formázza a Csővezetékben lévő olyan objektumokat, amelyek a ServiceController típusból származnak, és három oszlopból álló oszlop létrehozása: Állapot, Név és MegjelenítésName. De mi van akkor, ha a típus, amellyel foglalkozik, nincs bejegyzés a fájlban, vagy bármilyen más formátumú fájl az adott ügyben? Nos, ez elég egyszerű. Ha a csővezetékből kilépő objektumnak 5 vagy több tulajdonsága van, a PowerShell felsorolja az összes objektum tulajdonságait egy listában; ha kevesebb mint 5 tulajdonság van, akkor táblázatban jeleníti meg őket.

Az adatok formázása

Ha nem elégedett egy objektum vagy típus alapértelmezett formázásával, akkor saját formázását görgeti. Három cmdlet kell ahhoz, hogy tudd ezt.

  • Format-List
  • Format-Table
  • Format-Wide
Image
Image

Format-Wide egyszerűen gyűjt egy objektum gyűjteményét és minden objektum egyetlen tulajdonságát megjeleníti. Alapértelmezés szerint keresni fog egy név tulajdonságát; ha az objektumok nem tartalmaznak névtulajdonságot, akkor az objektum első tulajdonságát fogja használni, ha a tulajdonságok betűrendben vannak rendezve.

Get-Service | Format-Wide

Amint láthatja, alapértelmezésként két oszlop is van, bár megadhatja, hogy melyik tulajdonságot szeretné használni, valamint hogy hány oszlopot szeretne megjeleníteni.
Amint láthatja, alapértelmezésként két oszlop is van, bár megadhatja, hogy melyik tulajdonságot szeretné használni, valamint hogy hány oszlopot szeretne megjeleníteni.

Get-Service | Format-Wide -Property DisplayName -Column 6

Ha valami alapértelmezés szerint táblázatos formátumú, mindig a Format-List cmdlet használatával válthatja a lista nézetre. Lássuk a Get-Process cmdlet kimenetét.
Ha valami alapértelmezés szerint táblázatos formátumú, mindig a Format-List cmdlet használatával válthatja a lista nézetre. Lássuk a Get-Process cmdlet kimenetét.
Image
Image

Ez a táblázatos nézet nagyon jól illik ehhez az információhoz, de engedjük meg, hogy megnézzük a lista formájában. Mindössze annyit kell tennünk, hogy csővezeték Format-List.

Get-Process | Format-List

Amint láthatja, csak négy elem jelenik meg a listán alapértelmezés szerint. Az objektum összes tulajdonságának megtekintéséhez használhat helyettesítő karaktert.
Amint láthatja, csak négy elem jelenik meg a listán alapértelmezés szerint. Az objektum összes tulajdonságának megtekintéséhez használhat helyettesítő karaktert.

Get-Process | Format-List –Property *

Alternatívaként kiválaszthatja a kívánt tulajdonságokat.
Alternatívaként kiválaszthatja a kívánt tulajdonságokat.

Get-Process | Format-List –Property name,id

Image
Image

Format-Table, másrészt adatokat vesz fel, és táblázatosvá alakítja. Mivel a Get-Process adataink már táblázatban vannak, használhatjuk azt, hogy könnyen kiválasszuk a táblázatban megjelenítendő tulajdonságokat. Az AutoSize paramétert használtam, hogy az összes adatot egyetlen képernyőre illessze.

Get-Process | Format-Table name,id –AutoSize

Image
Image

Szűrés és összehasonlítás

Az objektumalapú csővezeték használatának egyik legjobb dologja az, hogy a tárgyakat a Csővezetékből bárhol fel lehet szűrni a Where-Object cmdlet használatával.

Get-Service | Where-Object {$_.Status -eq “Running”}

Ahol az objektum nagyon egyszerű. $ az aktuális csővezeték-objektumot jelenti, ahonnan kiválaszthatja a szűrni kívánt tulajdonságot. Itt csak olyan tárgyakat tartottak, ahol az Állapot tulajdonság egyenlő a Futással. A szűrési szkriptblokkban néhány összehasonlító operátor használható:
Ahol az objektum nagyon egyszerű. $ az aktuális csővezeték-objektumot jelenti, ahonnan kiválaszthatja a szűrni kívánt tulajdonságot. Itt csak olyan tárgyakat tartottak, ahol az Állapot tulajdonság egyenlő a Futással. A szűrési szkriptblokkban néhány összehasonlító operátor használható:
  • eq (Equal To)
  • neq (nem egyenlő)
  • gt (nagyobb mint)
  • ge (nagyobb vagy egyenlő)
  • lt (Kevesebb mint)
  • le (Kevesebb mint vagy egyenlő)
  • hasonló (Wildcard String Match)

A teljes listát és további információkat a kb. Összehasonlító koncepcionális súgófájlban tekintheti meg, azonban időbe telik a Where-Obeject szintaxis használata. Ez minden ebben az időben!

Ajánlott: