Powershell: Pipelining
Z MiS
				
				
				
				
																
				
				
								
				
Obsah | 
Princip
- Propojujeme několik příkazů tak, aby jeden příkaz předával svůj výstup místo na obrazovku dalšímu příkazu ke zpracování.
 - Na obrazovku se vypíše až výsledek celé posloupnosti příkazů.
 -  Zapisujeme tak, že mezi jednotlivé příkazy posloupnosti zapíšeme znak 
|.-  
|... znak „roura“, anglicky „pipe“ 
 -  
 -  Příkazy si předávají objekty, nikoli text!
- (Na rozdíl od Unixu a příkazového řádku Windows.)
 
 
Get-Process *ss | Where handles -gt 900 | Sort handles Get-Service Sym* | Stop-Service -WhatIf
Zpracování
- | Get-methods
- Aliasy:
- gm
 
 - Vypisuje:
- Typ objektu
- Dobré, abych zjistil, s čím pracuji!
 
 - Název, typ a popis atributů (properties)
 - Název a popis metod
 
 - Typ objektu
 
 - Aliasy:
 - | Select
- -property
- Zobrazí vybrané vlastnosti objektu
 - get-childitem | select -property name,length | sort -property length -Descending
 
 - -ExpandProperty
- Skoro stejné jako -Property <#ID_1153443337>
 - Dostanu jen hodnoty, bez nadpisu s názvem hodnoty
 - Vhodné pro použití uvnitř (...) <#ID_1421125970>
 
 - -First N
- Prvních N položek
 
 
 - -property
 - | Sort
- -Descending
 - -Property propertyName
- Podle čeho se bude řadit
 
 
 - | Measure
- Počítá počet řádků
 - Get-Verb | Measure
 
 
Filtrování
- | Where-object
 - | Where
- $_
- Zastupuje aktuální objekt z kolekce
 - Get-Service | Where {$_.status = "Running"}
 
 - {...}
- Spustí kód v závorkách.
 - Pokud vrací $true, ponechá objekt v kolekci
 - Pokud vrací $false, zahodí objekt
 
 - Operátory
- Porovnání
- -eq
 - -gt
 - -like
 
 - Logické
- -and
 
 
 - Porovnání
 - Nejprve filtruj, pak zpracovávej
- Optimalizace výkonu
 
 - Zjednodušená syntaxe
- | Where podmínka
 - | Where Status="Running"
- Funguje jen pro služby, nebo nefunguje???
 
 - Get-ChildItem | Where Name -like "*.xls"
 
 
 - $_
 
Výstup do souboru
- ... | Out-File blabla.txt
 
Předávání dat
- Commandlety mají v nápovědě informaci, jestli přijímají vstup z pipeline
 - Přijímání vstupu
- by value
- Přímo předáváme objekty
 - Typ objektů si musí odpovídat.
 
 - by Property Name
- Get-Process calc | dir
- Spusť předtím kalkulačku
 - Zobrazí obsah adresáře, ve kterém je program, který realizuje proces Calc
 
 
 - Get-Process calc | dir
 
 - by value
 - Předávání počítačů
- Get-ADComputers
 - Nelze je předávat jako objekty přímo.
 - Lze použít {...}:
- Get-ADComputers -Filter * | Get-WMIObjects -class Win32_bios -ComputerName {$_.Name}
 
 - Mnoho příkazů umí:
- -ComputerName
 - Get-WMIObjects -class Win32_bios -ComputerName (Get-ADComputers -Filter *).Name
 - PS 2.0
- Lze kombinovat se závorkou a:
- -ExpandProperty
 
 - Get-WMIObjects -class Win32_bios -ComputerName (Get-ADComputers -Filter *| Select -ExpandProperty name)
 
 - Lze kombinovat se závorkou a: