Geek skola: mācību formāts, filtrēšana un salīdzināšana PowerShell

Satura rādītājs:

Geek skola: mācību formāts, filtrēšana un salīdzināšana PowerShell
Geek skola: mācību formāts, filtrēšana un salīdzināšana PowerShell

Video: Geek skola: mācību formāts, filtrēšana un salīdzināšana PowerShell

Video: Geek skola: mācību formāts, filtrēšana un salīdzināšana PowerShell
Video: REAL RACING 3 LEAD FOOT EDITION - YouTube 2024, Aprīlis
Anonim
Šajā izdevumā Geek skola, mēs skatāmies uz formēšanu, filtrēšanu un salīdzināšanu objektus Pipeline.
Šajā izdevumā Geek skola, mēs skatāmies uz formēšanu, filtrēšanu un salīdzināšanu objektus Pipeline.

Noteikti izlasiet iepriekšējos sērijas rakstus:

  • Uzziniet, kā automatizēt Windows ar PowerShell
  • Mācīšanās lietot moduļus PowerShell
  • Mācīšanās kā lietot objektus PowerShell

Un visu nedēļu pieskarieties atlikušajām sērijām.

Noklusējuma formatēšana

Kad es vispirms sāku darboties ar PowerShell, es domāju, ka viss ir maģija, bet patiesībā ir tikai nedaudz laika, lai saprastu, kas notiek zem kapes. Tas pats attiecas uz PowerShell formatēšanas sistēmu. Patiesībā, ja palaižat cmdlet Get-Service, ģenerētais produkts parādīs tikai 3 īpašības: Statuss, Nosaukums un DisplayName.

Bet, ja jūs mēģināt Get-Service Get-dalībnieks, jūs redzat, ka ServiceController objektiem ir daudz vairāk nekā tikai šīs trīs īpašības, tad kas notiek?
Bet, ja jūs mēģināt Get-Service Get-dalībnieks, jūs redzat, ka ServiceController objektiem ir daudz vairāk nekā tikai šīs trīs īpašības, tad kas notiek?
Atbilde atrodas slēptā failā, kas nosaka, kā lielākā daļa iebūvēto cmdletu parādīs to izvadi. Lai iegūtu izpratni, lodziņā ierakstiet šādus un nospiediet enter.
Atbilde atrodas slēptā failā, kas nosaka, kā lielākā daļa iebūvēto cmdletu parādīs to izvadi. Lai iegūtu izpratni, lodziņā ierakstiet šādus un nospiediet enter.

notepad C:WindowsSystem32WindowsPowerShellv1.0DotNetTypes.format.ps1xml

Ja mēs izmantojam funkciju Notepad Find, mēs varam ātri pāriet uz sadaļu, kurā ir detalizēta Get-Service cmdlet izeja, meklējot Type ServiceController.

Pēkšņi varat redzēt, ka zem kapuces PowerShell noformē jebkādus maršruta objektus, kas ir ServiceController tipa, un izveido tabulu ar trīs slejām: Statuss, Nosaukums un DisplayName. Bet ko tad, ja veids, ar kuru jums ir darīšana, nenozīmē ierakstu šajā failā vai jebkuru citu formāta failu šajā jautājumā? Nu tad tas ir pavisam vienkāršs. Ja objektam, kas iziet no cauruļvada, ir 5 vai vairāk īpašības, PowerShell parāda visus objekta rekvizītus sarakstā; ja tam ir mazāk par 5 īpašībām, tas tos parāda tabulā.
Pēkšņi varat redzēt, ka zem kapuces PowerShell noformē jebkādus maršruta objektus, kas ir ServiceController tipa, un izveido tabulu ar trīs slejām: Statuss, Nosaukums un DisplayName. Bet ko tad, ja veids, ar kuru jums ir darīšana, nenozīmē ierakstu šajā failā vai jebkuru citu formāta failu šajā jautājumā? Nu tad tas ir pavisam vienkāršs. Ja objektam, kas iziet no cauruļvada, ir 5 vai vairāk īpašības, PowerShell parāda visus objekta rekvizītus sarakstā; ja tam ir mazāk par 5 īpašībām, tas tos parāda tabulā.

Jūsu datu formatēšana

Ja neesat apmierināts ar noklusēto objekta vai tipa formatējumu, varat mainīt savu formātu. Lai to izdarītu, ir trīs cmdlets, kas jums jāzina.

  • Formātu saraksts
  • Formāts-tabula
  • Formatēt-Wide
Image
Image

Formatēt-Wide vienkārši ņem objektu kolekciju un parāda katra objekta vienu īpašumu. Pēc noklusējuma tā meklēs nosaukuma īpašumu; ja jūsu objektos nav nosaukuma īpašuma, tā izmantos objekta pirmo īpašumu, tiklīdz rekvizīti ir sakārtoti alfabētiskā secībā.

Get-Service | Format-Wide

Kā jūs varat redzēt, tā arī noklusējusi divas kolonnas, lai gan jūs varat norādīt gan to īpašumu, kuru vēlaties izmantot, gan arī skaitu kolonnu, kuras vēlaties parādīt.
Kā jūs varat redzēt, tā arī noklusējusi divas kolonnas, lai gan jūs varat norādīt gan to īpašumu, kuru vēlaties izmantot, gan arī skaitu kolonnu, kuras vēlaties parādīt.

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

Ja kaut kas pēc noklusējuma tiek formatēts kā tabula, to vienmēr varat pārslēgt saraksta skatam, izmantojot cmdlet Format-List. Apskatīsim Get-Process cmdlet produkciju.
Ja kaut kas pēc noklusējuma tiek formatēts kā tabula, to vienmēr varat pārslēgt saraksta skatam, izmantojot cmdlet Format-List. Apskatīsim Get-Process cmdlet produkciju.
Image
Image

Šis tabulas skats patiesībā atbilst ļoti precīzai šāda veida informācijai, bet mēs izlikties, ka vēlamies to skatīt saraksta formā. Viss, kas mums patiešām ir jādara, ir to caurlaide Formātu saraksts.

Get-Process | Format-List

Kā redzat, pēc noklusējuma sarakstā tiek rādīti tikai četri vienumi. Lai apskatītu visas objekta īpašības, varat izmantot aizstājējzīmi.
Kā redzat, pēc noklusējuma sarakstā tiek rādīti tikai četri vienumi. Lai apskatītu visas objekta īpašības, varat izmantot aizstājējzīmi.

Get-Process | Format-List –Property *

Varat arī izvēlēties tieši vajadzīgās īpašības.
Varat arī izvēlēties tieši vajadzīgās īpašības.

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

Image
Image

Formāts-tabula no otras puses, ņem datus un pārvērš to tabulā. Tā kā mūsu dati no Get-Process jau ir tabulas veidā, mēs varam to izmantot, lai viegli izvēlētos tabulā redzamos īpašumus. Es izmantoju parametru AutoSize, lai visi dati būtu piemēroti vienam ekrānam.

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

Image
Image

Filtrēšana un salīdzināšana

Viena no labākajām lietām par objektīva cauruļvada izmantošanu ir tā, ka jūs jebkurā posmā varat filtrēt objektus no cauruļvada, izmantojot Kurš-Objekta cmdlet.

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

Lietošana, ja objekts tiešām ir ļoti vienkāršs. $ norāda pašreizējo cauruļvada objektu, no kura jūs varat izvēlēties īpašumu, kuru vēlaties filtrēt. Šeit tika turēti tikai objekti, kuru statusa īpašums ir vienāds ar Running. Filtrēšanas skripta blokā varat izmantot dažus salīdzināšanas operatorus:
Lietošana, ja objekts tiešām ir ļoti vienkāršs. $ norāda pašreizējo cauruļvada objektu, no kura jūs varat izvēlēties īpašumu, kuru vēlaties filtrēt. Šeit tika turēti tikai objekti, kuru statusa īpašums ir vienāds ar Running. Filtrēšanas skripta blokā varat izmantot dažus salīdzināšanas operatorus:
  • eq (līdzvērtīgs)
  • neq (nav vienāds ar)
  • gt (lielāks nekā)
  • ge (lielāks par vai līdzvērtīgs)
  • lv (mazāk nekā)
  • le (mazāks vai vienāds ar)
  • piemēram (aizstājējzīmju virknes spēle)

Pilnu sarakstu un plašāku informāciju var apskatīt salīdzināšanas konceptuālās palīdzības failā, tomēr tas aizņem laiku, lai kļūtu izmantots kur-Obejekta sintaksē. Tas viss šajā laikā!

Ieteicams: