pondělí 6. října 2008

Get-Command

Další cmdlet, který si ukážeme je Get-Command. Zpočátku jsem jej považoval za trochu jiný Get-Help, ale naštěstí jsem byl v relativně krátkém čase vyveden z omylu.

Použít jej můžete například pro zjišťování existujících cmdletů. Pokud víte, že chcete pracovat s objekty a neznáte všechny možnosti, použijte následující příkaz (výstup jsem trochu upravil pro potřeby zobrazení):

Get-Command *-object

CommandType Name Definition
----------- ---- ----------
Cmdlet Compare-Object Compare-Object...
Cmdlet ForEach-Object ForEach-Object...
Cmdlet Group-Object Group-Object [[...
Cmdlet Measure-Object Measure-Object...
Cmdlet New-Object New-Object [-Ty...
Cmdlet Select-Object Select-Object [...
Cmdlet Sort-Object Sort-Object [[-...
Cmdlet Tee-Object Tee-Object [-Fi...
Cmdlet Where-Object Where-Object [-...

Na výstupu dostanete všechny cmdlety, které slouží k práci s objekty a pokud se vám některý líbí, můžete na něj hned použít Get-Help.

Při práci s cmdlety je dobré vědět, jak vznikají jejich jména. Používá se forma nazvaná Verb-Noun (česky Sloveso-PodstatneJmeno). V první části názvu tedy říkáme co chceme dělat a ve druhé s čím chceme pracovat. I základní znalost angličtiny většinou stačí, aby člověk v krátké době začal používat tuto jmennou konvenci naprosto intuitivně. Pokud znáte verb-noun a víte, že PowerShell je objektový, můžete zkusit uhádnout výstup tohoto příkazu:

Get-Command -Noun Object

Nemělo by vás překvapit, že výstupem je stejný seznam jako v prvním případě. Existuje samozřejmě i přepínač -Verb. V nedávno uveřejněném článku, žádal Jeffrey Snover PS komunitu o dodržování pravidla verb-noun. Pokud budete vytvářet své cmdlety nebo skripty, snažte se v rámci "čitelnosti" toto pravidlo také dodržovat.

Get-Command slouží i ke zjištění informací o funkcích, aplikacích, skriptech, atd. Zajímá vás třeba ping, zadejte

Get-Command ping | Format-List

a dostanete výstup, ve kterém si můžete zjistit některé zajímavosti (verze, cesta, ...)

Na závěr si zkuste následující příkazy:

Get-Command
gcm
Get-Command *
Get-Command -Verb Get
Get-Command -CommandType Function


Žádné komentáře: