Powershell: Pipelining

Z MiS
(Rozdíly mezi verzemi)
Přejít na: navigace, hledání
(Upraveno formátování.)
(Dokončení formátování, -eq místo =.)
Řádka 56: Řádka 56:
 
  $_
 
  $_
 
*Zastupuje aktuální objekt z kolekce
 
*Zastupuje aktuální objekt z kolekce
  Get-Service | Where {$_.status = "Running"}
+
  Get-Service | Where {$_.status -eq "Running"}
 
  {...}
 
  {...}
 
* Spustí kód v závorkách.
 
* Spustí kód v závorkách.
Řádka 78: Řádka 78:
 
; Zjednodušená syntaxe
 
; Zjednodušená syntaxe
 
  | Where podmínka
 
  | Where podmínka
  | Where Status="Running"
+
<div class="Priklad">
 +
  Get-Service | Where Status -eq "Running"
 
  Get-ChildItem | Where Name -like "*.xls"
 
  Get-ChildItem | Where Name -like "*.xls"
 +
</div>
  
  
Řádka 89: Řádka 91:
 
*Commandlety mají v nápovědě informaci, jestli přijímají vstup z&nbsp;pipeline.
 
*Commandlety mají v nápovědě informaci, jestli přijímají vstup z&nbsp;pipeline.
  
; Přijímání vstupu
+
=== Přijímání vstupu ===
*by value
+
* by value
**Přímo předáváme objekty
+
** Přímo předáváme objekty.
**Typ objektů si musí odpovídat.
+
** Typ objektů na výstupu prvního commandletu musí odpovídat typu objektu, který očekává na vstupu zpracovávající commandlet.
*by Property Name
+
* by Property Name
  Get-Process calc | dir
+
** Přijímající commandlet očekává objekt, který má konkrétní vlastnost.
 +
** Na samotném typu předávaného objektu nezáleží, důležité je, že má tuto konkrétní vlastnost.
 +
<div class="Priklad">
 +
  Get-Process ''calc'' | dir
 
*Spusť předtím kalkulačku
 
*Spusť předtím kalkulačku
*Zobrazí obsah adresáře, ve kterém je program, který realizuje proces Calc
+
*Zobrazí obsah adresáře, ve kterém je program, který realizuje proces Calc.
 +
</div>
  
; Předávání počítačů
+
=== Předávání počítačů ===
* Příklad: <code>Get-ADComputers</code>
+
* Počítače nelze předávat jako objekty přímo.
** Počítače nelze předávat jako objekty přímo.
+
 
** Lze použít <code>{...}</code>:
+
; Lze použít <code>{...}</code>:
 
<div class="Priklad">
 
<div class="Priklad">
 
  Get-ADComputers -Filter * | Get-WMIObjects -class Win32_bios -ComputerName {$_.Name}
 
  Get-ADComputers -Filter * | Get-WMIObjects -class Win32_bios -ComputerName {$_.Name}
 
</div>
 
</div>
* Mnoho příkazů umí také:
+
 
** <code>-ComputerName</code>
+
; Mnoho příkazů umí také:
 +
* <code>-ComputerName</code>
 
<div class="Priklad">
 
<div class="Priklad">
Get-WMIObjects -class Win32_bios -ComputerName (Get-ADComputers -Filter *).Name
+
Get-WMIObjects -class Win32_bios -ComputerName (Get-ADComputers -Filter *).Name
 
</div>
 
</div>
  
; Lze kombinovat se závorkou a:
+
; Lze kombinovat se závorkou a&nbsp;<code>-ExpandProperty</code>
-ExpandProperty
+
 
<div class="Priklad">
 
<div class="Priklad">
  Get-WMIObjects -class Win32_bios -ComputerName (Get-ADComputers -Filter *| Select -ExpandProperty name)
+
  Get-WMIObjects -class ''Win32_bios'' -ComputerName (Get-ADComputers -Filter ''*'' | Select -ExpandProperty ''name'')
 
</div>
 
</div>

Verze z 7. 1. 2019, 07:16


Obsah

Princip

Get-Process *ss | Where handles -gt 900 | Sort handles
Get-Service Sym* | Stop-Service -WhatIf


Zpracování

| Get-Methods
| Select
Get-ChildItem | Select -Property Name,Length | Sort -Property Length -Descending
| Sort
| Measure
Get-Verb | Measure


Filtrování

| Where-object
| Where
$_
Get-Service | Where {$_.status -eq "Running"}
{...}
Operátory
Doporučený postup
Zjednodušená syntaxe
| Where podmínka
Get-Service | Where Status -eq "Running"
Get-ChildItem | Where Name -like "*.xls"


Výstup do souboru

... | Out-File vystup.txt


Předávání dat

Přijímání vstupu

Get-Process calc | dir
  • Spusť předtím kalkulačku
  • Zobrazí obsah adresáře, ve kterém je program, který realizuje proces Calc.

Předávání počítačů

Lze použít {...}
Get-ADComputers -Filter * | Get-WMIObjects -class Win32_bios -ComputerName {$_.Name}
Mnoho příkazů umí také
Get-WMIObjects -class Win32_bios -ComputerName (Get-ADComputers -Filter *).Name
Lze kombinovat se závorkou a -ExpandProperty
Get-WMIObjects -class Win32_bios -ComputerName (Get-ADComputers -Filter * | Select -ExpandProperty name)
Osobní nástroje
Jmenné prostory
Varianty
Akce
Výuka
Navigace
Nástroje