Co je skriptování Windows PowerShell?

Klíčové věci

  • PowerShell je skriptovací jazyk, který může pomoci automatizovat počítačové úlohy.
  • Rutiny jsou jednofunkční příkazy Powershell. Dostupné příkazy můžete zobrazit pomocí „Get-Command“.
  • PowerShell je k dispozici pro Windows, macOS a Linux.

PowerShell je skriptovací jazyk, který vám pomůže jednoduše a spolehlivě automatizovat počítačové úlohy. Zjistěte, jak jej použít k zahájení vytváření skriptů pro váš počítač se systémem Windows.

Přehled skriptování PowerShellu

Chcete-li začít vytvářet jednoduché skripty PowerShellu ve Windows, musíte vědět o třech věcech:

  • Rutiny: příkazy s jednou funkcí.
  • Parametry: určete co, kdy, kde a jak rutin/příkazů.
  • Pipeline: přebírá výstup vaší rutiny a její parametry a propojuje ji s dalšími rutinami a funkcemi.

Kombinací všech tří můžete vytvářet jednoduché skripty, které pomohou automatizovat úkoly.

Zde je příklad kanálu, který ukazuje, jak můžete zkombinovat několik rutin k dosažení úkolu:

Ke spuštění tohoto kanálu v PowerShellu byste použili něco jako tento příkaz:

 Get-Object Potato | Peel-Object | Chop-Object Chips| Cook-Object DeepFry `
  | Place-Object Bowl

Cmdlets v detailu

Jako každý skriptovací jazyk je PowerShell předpřipraven s příkazy pro manipulaci s objekty a provádění různých úkolů. Tyto základní příkazy v PowerShellu jsou známé jako rutiny.

  Opravit chybu aplikace TslGame.exe ve Windows 10

Rutiny (vyslovováno jako command-lets) jsou malé jednofunkční příkazy používané v prostředí PowerShell s příponou .dll. Jsou to lehké části kódu, které se díky své kompilované povaze provádějí rychleji než funkce.

V PowerShellu jsou k dispozici tisíce rutin. Nemusíte se je učit všechny. Můžete začít tím, že se naučíte několik základních rutin PowerShell, a poté se v učení pokračujte, když budete procházet svou cestou skriptování. Chcete-li zobrazit rutiny, které jsou již nainstalovány v počítači, spusťte:

 Get-Command 

Pokud projdete výsledky, všimnete si, že se řídí konvencí pojmenování slovesa a podstatných jmen. To usnadňuje pochopení toho, co určitá rutina dělá.

Například Get-Command poskytuje seznam příkazů dostupných v PowerShellu. Get-Process vám poskytne procesy, které jsou aktuálně aktivní, a Copy-Item zkopíruje jeden nebo více souborů do určitého adresáře.

Rutiny jsou také dodávány s rozsáhlou dokumentací, která obsahuje příklady, pokyny k použití a vysvětlení jejich funkcí.

Chcete-li se dozvědět více o konkrétní rutině a jak ji používat, spusťte:

 Get-Help <name-of-cmdlet> 

Vysvětlení parametrů PowerShellu

Rutiny mohou přijímat parametry pro změnu jejich chování. Když spustíte rutinu nebo funkci, můžete zadat hodnoty parametrů, které určí, co, kdy, kde a jak se každý příkaz PowerShellu spustí.

Například Get-Process získá a zobrazí seznam všech aktivních procesů ve vašem operačním systému:

Ale co když chcete získat pouze konkrétní proces? Můžete tak učinit pomocí parametrů. Chcete-li například získat všechny procesy Slack, můžete použít parametr Name s rutinou Get-Process:

 Get-Process -Name Slack 

Poté uvidíte pouze procesy s názvem „slack“:

  Co je testovací režim ve Windows 10?

Některé parametry jsou „poziční“, což znamená, že jejich název je volitelný. V tomto případě Get-Process -Name Slack a Get-Process Slack dělají totéž.

Každá rutina přijímá různé typy parametrů. Pomocí příkazu Get-Help zobrazte akceptované parametry rutiny v části SYNTAX.

 Get-Help Get-Process 

Zobrazí se seznam všech možných způsobů, jak můžete danou rutinu spustit:

V tomto případě rutina Get-Process přijímá parametry jako Name, Id, ComputerName, Module, FileVersionInfo a další běžné parametry. Symboly zde znamenají:

Symbol

název

Význam

Prázdný

Parametr nepřijímá vstup

Spojovník

Označuje název parametru

<>

Úhlové držáky

Zástupný symbol pro text

[]

Závorky

Parametr, který může přijmout jednu nebo více hodnot

{}

Rovnátka

Parametr přijímá sadu hodnot

Parametry, které přijímají vstupy, budou označovat typ dat, která vyžadují, jako je řetězec, celé číslo, boolean nebo DateTime. Například toto:

 Get-Process [[-Name] <string[]>] 

Znamená to, že parametr Name přijímá jednu nebo více řetězcových hodnot, přičemž toto:

 Get-Process -Id <int[]> 

Znamená, že parametr Id přijímá jednu nebo více celočíselných hodnot.

Dřívější příklad Get-Process používal parametr Name k zúžení výsledků. Pokud jej však chcete zúžit na ještě konkrétnější proces, můžete použít parametr ID, který vyžaduje celé číslo, jak je uvedeno v jeho syntaxi.

 Get-Process -Id 3016 

V seznamu byste pak měli vidět pouze jeden proces:

  Oprava nespouštění Forza Horizon 4 ve Windows 10

Vytvoření potrubí

PowerShell zachází se všemi daty jako s objekty. Při sestavení skriptu tyto objekty procházejí řadou rutin nebo funkcí spojených symbolem svislé čáry ( | ). Výběr správných rutin a jejich propojení v logickém sledu pomocí kanálu je pro efektivní skript zásadní.

Řekněme, že vytváříte skript pro třídění a zobrazení pěti souborů, které zabírají nejvíce místa ve složce. Existují robustnější způsoby, jak vytvořit skript pro třídění souborů, ale následující jednoduchý řádek je snadno pochopitelný:

Chcete-li to provést v prostředí PowerShell, použijte kanál, který vypadá asi takto:

 Get-ChildItem -Path "C:\Directory" -File | Sort-Object Length -Descending `
 | Select-Object -First 5 | Format-Table Name, Length -AutoSize

Ukládání Pipeline jako skriptu PS1

Nyní, když máme funkční kanál, můžete jej uložit jako soubor skriptu PS1, takže jej nemusíte neustále psát při každém použití.

Nejjednodušší způsob, jak vytvořit soubor PS1, je vložit skript do poznámkového bloku a uložit soubor s příponou .ps1.

Jakmile vytvoříte soubor PS1, můžete jej použít v prostředí PowerShell spuštěním ./ScriptName.ps1:

Gratulujeme! Nyní můžete vytvářet skripty PowerShell PS1.

PowerShell je k dispozici také v systémech Linux a macOS

PowerShell je jedním z nejlepších skriptovacích jazyků pro začátečníky, které se může kdokoli naučit. Přestože bylo PowerShell v minulosti omezeno pouze na Windows, aktualizovaná verze PowerShellu je nyní dostupná také pro macOS a mnoho distribucí Linuxu! Díky tomu je PowerShell ještě přitažlivější, protože můžete přenést své znalosti z Windows do jiných operačních systémů.