Geek School: Oblikovanje učenja, filtriranje i uspoređivanje u PowerShellu

Sadržaj:

Geek School: Oblikovanje učenja, filtriranje i uspoređivanje u PowerShellu
Geek School: Oblikovanje učenja, filtriranje i uspoređivanje u PowerShellu

Video: Geek School: Oblikovanje učenja, filtriranje i uspoređivanje u PowerShellu

Video: Geek School: Oblikovanje učenja, filtriranje i uspoređivanje u PowerShellu
Video: CS50 2014 - Week 4 - YouTube 2024, Travanj
Anonim
U ovom izdanju Geek škole gledamo na oblikovanje, filtriranje i uspoređivanje objekata u Cjevovodu.
U ovom izdanju Geek škole gledamo na oblikovanje, filtriranje i uspoređivanje objekata u Cjevovodu.

Obavezno pročitajte prethodne članke serije:

  • Saznajte kako automatizirati sustav Windows pomoću programa PowerShell
  • Učenje pomoću Cmdletsa u PowerShellu
  • Učenje kako koristiti objekte u PowerShellu

I ostanite u tijeku cijele serije cijeli tjedan.

Zadano je oblikovanje

Kad sam prvi put počeo s PowerShellom, mislio sam da je sve magija, ali istina je da treba samo malo vremena da shvatim što se događa ispod nape. Isto vrijedi i za sustav oblikovanja PowerShell. Zapravo, ako pokrenete cmdlet Get-Service, generirani output prikazuje samo 3 svojstva: Status, Naziv i DisplayName.

Ali ako dobijete Get-Service Get-Member, vidjet ćete da objekti ServiceControllera imaju mnogo više od ovih tri svojstva pa što se događa?
Ali ako dobijete Get-Service Get-Member, vidjet ćete da objekti ServiceControllera imaju mnogo više od ovih tri svojstva pa što se događa?
Odgovor leži u skrivenoj datoteci koja definira kako većina izgrađenih cmdleta prikazuje svoj izlaz. Da biste dobili razumijevanje, upišite sljedeće u ljusku i pritisnite enter.
Odgovor leži u skrivenoj datoteci koja definira kako većina izgrađenih cmdleta prikazuje svoj izlaz. Da biste dobili razumijevanje, upišite sljedeće u ljusku i pritisnite enter.

notepad C:WindowsSystem32WindowsPowerShellv1.0DotNetTypes.format.ps1xml

Ako koristimo funkciju Notepad Find, brzo možemo preskočiti do odjeljka koji detalje o izlazu cmdleta Get-Service pretraživanjem vrste ServiceController.

Odjednom možete vidjeti da ispod konopa PowerShell oblikuje objekte u Pipelineu koji su tipa ServiceController i stvaraju tablicu s tri stupca: Status, Naziv i DisplayName. Ali što ako tip s kojim se bavite nema ulaz u tu datoteku ili bilo koju drugu datoteku formata za to? Pa onda, zapravo je vrlo jednostavna. Ako objekt koji izlazi iz cjevovoda ima 5 ili više svojstava, PowerShell prikazuje sve objektne objekte na popisu; ako ima manje od 5 svojstava, prikazuje ih u tablici.
Odjednom možete vidjeti da ispod konopa PowerShell oblikuje objekte u Pipelineu koji su tipa ServiceController i stvaraju tablicu s tri stupca: Status, Naziv i DisplayName. Ali što ako tip s kojim se bavite nema ulaz u tu datoteku ili bilo koju drugu datoteku formata za to? Pa onda, zapravo je vrlo jednostavna. Ako objekt koji izlazi iz cjevovoda ima 5 ili više svojstava, PowerShell prikazuje sve objektne objekte na popisu; ako ima manje od 5 svojstava, prikazuje ih u tablici.

Oblikovanje podataka

Ako niste zadovoljni s zadanim oblikovanjem objekta ili vrste, možete pokrenuti vlastiti oblikovanje. Za to morate znati tri cmdleta.

  • Format-List
  • Format-tablica
  • Format-Široki
Image
Image

Format-Široki jednostavno preuzima zbirku objekata i prikazuje pojedinačno svojstvo svakog objekta. Prema zadanim postavkama, tražit će naziv entiteta; ako vaši objekti ne sadrže naziv svojstva, koristi se prvo svojstvo objekta nakon što su svojstva poredana abecednim redom.

Get-Service | Format-Wide

Kao što vidite, on također zadane postavke za dva stupca, iako možete odrediti i svojstvo koje želite koristiti, kao i koliko stupaca želite prikazati.
Kao što vidite, on također zadane postavke za dva stupca, iako možete odrediti i svojstvo koje želite koristiti, kao i koliko stupaca želite prikazati.

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

Ako je nešto prema zadanim postavkama oblikovano kao tablica, uvijek ga možete prebaciti na prikaz popisa pomoću cmdleta Format-List. Pogledajmo izlaz iz Get-Process cmdleta.
Ako je nešto prema zadanim postavkama oblikovano kao tablica, uvijek ga možete prebaciti na prikaz popisa pomoću cmdleta Format-List. Pogledajmo izlaz iz Get-Process cmdleta.
Image
Image

Ovaj tablični prikaz stvarno odgovara ovakvoj vrsti informacija vrlo dobro, ali neka se pretvaramo da ga želimo pregledati u obliku popisa. Sve što zaista moramo učiniti je cijev Format-List.

Get-Process | Format-List

Kao što vidite, zadano se prikazuju samo četiri stavke na popisu. Da biste vidjeli sva svojstva objekta, možete upotrijebiti znak zamjenskih znakova.
Kao što vidite, zadano se prikazuju samo četiri stavke na popisu. Da biste vidjeli sva svojstva objekta, možete upotrijebiti znak zamjenskih znakova.

Get-Process | Format-List –Property *

Alternativno, možete odabrati samo one željene osobine.
Alternativno, možete odabrati samo one željene osobine.

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

Image
Image

Format-tablica, s druge strane, uzima podatke i pretvara ih u tablicu. Budući da su naši podaci iz Get-Procesa već u obliku tablice, možemo ga koristiti za jednostavno odabiranje željenih svojstava prikazanih u tablici. Koristio sam parametar AutoSize kako bi svi podaci odgovarali na jedan zaslon.

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

Image
Image

Filtriranje i uspoređivanje

Jedna od najboljih stvari o korištenju cjevovoda na temelju objekta jest da možete filtrirati objekte iz cjevovoda u bilo kojoj fazi pomoću cmdleta Where-Object.

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

Korištenje gdje je objekt zapravo vrlo jednostavan. $ predstavlja trenutačni objekt cjevovoda, od kojeg možete odabrati entitet na koji želite filtrirati. Ovdje su samo čuvali objekte gdje je Status svojstvo jednako Trčanje. Postoji nekoliko operatera usporedbe koje možete koristiti u bloku skripte za filtriranje:
Korištenje gdje je objekt zapravo vrlo jednostavan. $ predstavlja trenutačni objekt cjevovoda, od kojeg možete odabrati entitet na koji želite filtrirati. Ovdje su samo čuvali objekte gdje je Status svojstvo jednako Trčanje. Postoji nekoliko operatera usporedbe koje možete koristiti u bloku skripte za filtriranje:
  • eq (jednako)
  • neq (nije jednako)
  • gt (veće od)
  • ge (veća ili jednaka)
  • lt (manje od)
  • le (manje od ili jednako)
  • kao što je (podudaranje s podudaranjem žetona)

Potpuni popis i više informacija možete pogledati u konceptualnoj datoteci help_data, no potrebno je neko vrijeme navikavanje na sintaksu Where-Obeject. To je sve za ovo vrijeme!

Preporučeni: