Számított tulajdonságok a PowerShell-függvényekben – CloudSavvy IT

Avatar admin | 2020.12.31. 15 Views 0 Likes 0 Ratings

15 Views 0 Ratings Rate it

Powershell logó

Sokszor előfordulhat, hogy a PowerShell-ben lévő objektumból visszaküldött tulajdonságokat nem ideális módon nevezik meg, vagy az érték nem egészen a szükséges formátumban van. Az ilyen esetekben a PowerShell rendelkezik a számított tulajdonságok konstrukció. Ez a hasznos funkció lehetővé teszi a visszaküldött érték egyszerű módosítását a kiválasztott műveletek során, és gyorsan és egyszerűen visszaadhatja a csővezetékes kimeneten szükséges elemeket. Hogyan néz ki ez a gyakorlatban? Mit szólnál ahhoz, ha egy dátumformátumot választasz, és másik formátumra váltasz?

$Object | Select-Object "Name","Date",@{
	Name="NewDate"
	Expression = { Get-Date $_.Date -Format "MM/dd/yyyy" }
}

Ha ezt még nem látta, akkor elég furcsa kinézetű formátum lehet a Select-Object parancs. Olvassa el, hogy megtudja, mit jelentenek az egyes részek, és hogyan lehet kihasználni az adatok szükség szerinti egyszerű kezelését!

A számított tulajdonság anatómiája

A kiszámított tulajdonság lényegében egy hashtable, amely meghatározza, hogy a kimenetnek hogyan kell keresnie egy tulajdonságot. A kimenet manipulálására több kulcs is meghatározható.

  • Név / címke – Megadja a visszaküldött ingatlan nevét, a label álnévként használják.
  • Kifejezés – Az új tulajdonságérték kiszámításához használt szkriptblokk.
  • Igazítás – Ha táblázatos kimeneti parancsmagot használ, akkor ez meghatározza, hogy az értékek hogyan jelennek meg egy oszlopban left, center, vagy right mint megengedett értékek.
  • Formatstring – Megad egy formátum karakterláncot, amely egy .NET formázási karakterlánc.
  • Szélesség – A táblázatos kimenetnél meghatározza az oszlop maximális szélességét, amelynek nagyobbnak kell lennie, mint 0.
  • Mélység – Csak a Format-Custom parancsmag, ez megadja az ingatlanonkénti maximális kiterjesztési mélységet.
  • Növekvő csökkenő – Adja meg egy vagy több tulajdonság rendezési sorrendjét, ezek logikai értékek, amelyek valamelyikre vannak állítva $True vagy $False.

Hogyan néz ki ez a gyakorlatban? Mert Select-Object általában csak használni fogja Name és Expression. Az adott táblázatos kimenet vezérléséhez használhatja a különböző igazítási, formázási és szélességi beállításokat.

Select-Object és a Calculated Properties

Az idő nagy részében, Select-Object kiszámított tulajdonságokkal használják, mivel ez lehetővé teszi a kimenet gyors és egyszerű kezelését anélkül, hogy módosítania kellene a forrásadatokat, és kényelmesen továbbítaná az adatokat a folyamatban a szükséges formátumban. Az alábbiakban bemutatunk egy példát, hogyan néz ki ez a gyakorlatban! Először ugyanazzal az objektummal kezdjük, amelyet az összes alábbi példa bemutatására használunk.

$Object = [PSCustomObject]@{
  'Name'    = 'Test Object'
  'Date'    = Get-Date
  'Number'  = 100
  'Enabled' = $True
  'Extra'   = @('One','Two','Three')
}

$Object

A dátumot nézve nem teljesen egyezik meg a várakozásokkal. Változtassuk ezt egy másik formátumra. Módosíthatja a Get-Date parancsot maga az objektum, de néha nincs rá lehetősége. Ezért megváltoztathatjuk a dátum formátumát az alábbiakhoz hasonló számított tulajdonság használatával. Az alábbi kóddal megváltoztatjuk a dátum formátumát MM/dd/yyyy használni a Format paramétere Get-Date.

$Object | Select-Object Name,@{
  Name="NewDate"
  Expression = { Get-Date $_.Date -Format "MM/dd/yyyy" }
}

Mint látható, egy új ingatlan hívott NewDate létrehozva, és a dátum formátum megváltozott! Mivel ez egy szkriptblokkot használ, sok logikát tartalmazhat, például vezérlő utasításokat, például switch vagy további keresések, ha szükséges. Olvassa el, hogy megtanulja, hogyan lehet jobban formázott adatokat kimenni.

Formátum-táblázat és számított tulajdonságok

A. Alapértelmezett nézete Format-Table hagyhat kívánnivalót maga után. Ezért nézzük meg, mit tehetünk azért, hogy egy kicsit jobb legyen a munka. Az eredetileg definiált objektum használatával hogyan néz ki a kimenet?

Jobbá tehetjük ezt, az biztos! Először is, az igazítás nem ideális Number vagy Enabled. Másodszor, ki kellene mutatnunk Number két tizedesjeggyel. Végül készítsük el Name szélesebb, változás Date új formátumunkhoz, és csatlakozzon Extra vesszővel. Az alábbiakban olvashatja el, hogyan használhatjuk a kiszámított tulajdonságokat a nézet megváltoztatásához!

$Object | Format-Table @{
  Name="Name"
  Expression = { $_.Name }
  Width = 20
},
@{
  Name="Date"
  Expression = { Get-Date $_.Date -Format "MM/dd/yyyy" }
  Width = 10
},
@{
  Name="Number"
  Expression = { $_.Number }
  Formatstring = 'N2'
  Alignment="Center"
  Width = 10
},
@{
  Name="Enabled"
  Expression = { $_.Enabled }
  Alignment="Center"
  Width = 10
},
@{
  Name="Extra"
  Expression = { $_.Extra -Join ", " }
  Width = 30
}

Sokkal jobb! Ez könnyebben érthető az adatokból, és láthatja, hogy a számított tulajdonságokkal rendelkező összes lehetőség hogyan áll össze a munka javítása érdekében.

Következtetés

A kiszámított tulajdonságok olyan egyedi nyelvi konstrukciók, amelyek akkor kerülnek alkalmazásra, amikor gyors és rugalmas módra van szükségük a csővezeték kimenetének módosítására az upstream kód módosítása nélkül. A konzolos megjelenítéshez és az adatkezeléshez rendelkezésre álló funkciókkal az adatok továbbvezetése során a folyamaton keresztül a kiszámított tulajdonságok gyorsan integrálhatók bármely szkriptbe.


Source link


15 Views 0 Ratings Rate it

  • Minden jog fenntartva 2019-2020. Hogyankészítsek.Hu Impresszum Adatkezelési szabályok