co je PowerShell?
- 05/22/2020
- 5 minut číst
-
- j
PowerShell je cross-platform úkol automatizace a řízení konfigurace rámec, který se skládá z příkazového řádku a skriptovací jazyk. Na rozdíl od většiny skořápek, které přijímají a vrací text,PowerShell je postaven na vrcholu .NET Společný Jazyk Runtime (CLR), a přijímá a vrací .NETobjects., Tato zásadní změna přináší zcela nové nástroje a metody automatizace.
Výstup je objekt-based
na Rozdíl od tradičních příkazového řádku rozhraní, PowerShell cmdlets jsou navrženy tak, aby vypořádat s objekty.Objekt je strukturované informace, které je více než jen řetězec znaků, objeví se na thescreen. Příkazový výstup vždy obsahuje další informace, které můžete použít, pokud je potřebujete.
Pokud jste v minulosti používali nástroje pro zpracování textu ke zpracování dat, zjistíte, že se chovají odlišně, pokud jsou použity v PowerShellu., Ve většině případů nepotřebujete nástroje pro zpracování textu k extrahováníspecifické informace. Můžete přímo přistupovat části dat pomocí standardního PowerShell objectsyntax.
rodina příkazů je rozšiřitelná
rozhraní, jako je cmd.exe
neposkytují způsob, jak přímo rozšířit vestavěný příkazový soubor. Můžete vytvořit externí nástroje příkazového řádku, které běží v cmd.exe
. Ale tyto externí nástroje nemají služby, jako je integrace nápovědy. cmd.exe
automaticky neví, že theseexterní nástroje jsou platné příkazy.,
příkazy v PowerShellu jsou známé jako cmdlets. Můžete použít každý cmdlet samostatně, ale jejichnapájení je realizováno, když je kombinujete k provádění složitých úkolů. Stejně jako mnoho skořápek dává Powershellpřístup k souborovému systému v počítači. Poskytovatelé PowerShell vám umožňují přístup k ostatnímuobchodů dat, jako je registr a úložiště certifikátů, stejně snadno jako přístup k souborovému systému.
pomocí kompilovaného kódu nebo skriptů si můžete vytvořit vlastní cmdlet a funkční moduly. Moduly mohou přidatcmdlety a poskytovatele do shellu., PowerShell také podporuje skripty, které jsou analogické UNIXshell skripty a cmd.exe
dávkové soubory.
podpora pro aliasy příkazů
PowerShell podporuje aliasy odkazující na příkazy alternativními názvy. Aliasing umožňuje uživatelům szkušenosti v jiných shellech používat běžné názvy příkazů, které již znají pro podobnéoperace v PowerShell.
Aliasing spojuje nové jméno s jiným příkazem. Například PowerShell má internífunkce s názvem Clear-Host
, která vymaže výstupní okno., Můžete zadat buď cls
neboclear
alias na příkazovém řádku. PowerShell interpretuje tyto aliasy a spouští funkciClear-Host
.
Tato funkce pomáhá uživatelům učit se PowerShell. Za prvé, většina cmd.exe
a Unix uživatelé mají largerepertoire příkazů, které uživatelé už víte podle názvu. Ekvivalenty PowerShell nemusí produkovatdentické výsledky. Výsledky jsou však dostatečně blízko, aby uživatelé mohli pracovat, aniž by znali název příkazu PowerShell., „Svalová paměť“ je dalším hlavním zdrojem frustrace při učení novéhospolečná skořápka. Pokud jste použili cmd.exe
pro let, můžete reflexivně typ cls
příkaz toclear obrazovky. Bez aliasu pro Clear-Host
obdržíte chybovou zprávu a nebudete vědětco udělat pro vymazání výstupu.
PowerShell zpracovává vstup konzoly a zobrazuje
při zadávání příkazu PowerShell vždy zpracovává vstup příkazového řádku přímo. Powershelltaké formátuje výstup, který vidíte na obrazovce., Tento rozdíl je významný, protože jehosnižuje práci potřebnou pro každou cmdlet. Zajišťuje, že můžete vždy dělat věci stejným způsobems jakýmkoli cmdletem. Vývojáři Cmdlet nemusí psát kód, aby analyzovali argumenty příkazového řádku neboformátovat výstup.
tradiční nástroje příkazového řádku mají vlastní schémata pro vyžádání a zobrazení nápovědy. Somecommand-line nástroje použít /?
pro spuštění Nápovědy; jiní používají -?
/H
nebo//
., Někteří se zobrazí pomoc v okně GUI, spíše než na displeji konzoly. Pokud použijete parametr thewrong, nástroj může ignorovat to, co jste zadali, a začít provádět úkol automaticky.Protože PowerShell automaticky analyzuje a zpracovává příkazový řádek, parametr -?
vždyznamená „ukázat mi pomoc pro tento příkaz“.
Poznámka
Pokud spustíte grafickou aplikaci v PowerShell, otevře se okno aplikace.PowerShell zasahuje pouze při zpracování vstupu příkazového řádku, který dodáváte, nebo se aplikace vrátí do okna konzoly., To nemá vliv na to, jak aplikace funguje interně.
PowerShell má potrubí
potrubí jsou pravděpodobně nejcennější koncept používaný v rozhraní příkazového řádku. Při použitísprávně potrubí snižuje úsilí o použití složitých příkazů a usnadňuje vidět tokpráce. Každý příkaz v potrubí předává svůj výstup, položku po položce, dalšímu příkazu. Příkazy nemusí zpracovávat více než jednu položku najednou. Výsledkem je snížená spotřeba zdrojů aschopnost okamžitě získat výstup.,
zápis používaný pro potrubí je podobný zápisu používanému v jiných pláštích. Na první pohled to nenínemůže být zřejmé, jak se potrubí liší v PowerShell. I když vidíte text na obrazovce,PowerShell potrubí objekty, ne text, mezi příkazy.,
například, pokud jste použít Out-Host
cmdlet vynutit page-by-page zobrazení výstupu na jiný příkaz, výstup vypadá stejně jako normální text, který se zobrazí na obrazovce, rozdělena intopages:
Get-ChildItem | Out-Host -Paging
Stránkování také snižuje využití CPU, protože zpracování převody do Out-Host
cmdlet, když nemá kompletní stránka připravena k zobrazení. Cmdlety, které ji předcházejí při provádění přerušení potrubí, dokud není k dispozici Další stránka výstupu.,
objekty v potrubí
Když spustíte cmdlet v PowerShell, uvidíte textový výstup, protože je nutné reprezentovatobjekty jako text v okně konzoly. Textový výstup nemusí zobrazovat všechny vlastnosti výstupního objektu.
zvažte napříkladGet-Location
cmdlet. Textový výstup je souhrn informací, nikoliv kompletní reprezentace objektu vráceného Get-Location
. Nadpis ve výstupu je přidánprocesem, který formátuje data pro zobrazení na obrazovce.,
Get-Location
Path----C:\
Potrubí výstup do Get-Member
cmdlet zobrazuje informace o objektu vrácenéGet-Location
.
Get-Location | Get-Member
Get-Location
vrací PathInfo objekt, který obsahuje aktuální cestu a další informace.
Vestavěný systém nápovědy
Podobný Unix man
stránky, PowerShell obsahuje podrobné články nápovědy, které vysvětlují, PowerShellconcepts a syntaxe., Pomocí Get-Help cmdlet zobrazit tyto články na commandprompt nebo zobrazit nejnovější aktualizované verze těchto článků v PowerShell documentationonline.
Chcete-li se dozvědět více o PowerShell, podívejte se do sekce Learning PowerShell na tomto webu.