Get-Command în PowerShell

Primii pași Windows PowerShell 1.0

Găsește comenzile disponibile (cmdlet-uri, funcții, aliasuri, programe); Get-Alias arată ce comandă se ascunde în spatele unui alias.

Sintaxă
Get-Command [[-Name] <String[]>] [-Verb <String[]>] [-Noun <String[]>] [-Module <String[]>] [-CommandType <CommandTypes>]
Get-Alias [[-Name] <String[]>] [-Definition <String[]>]

Ce face Get-Command

Get-Command răspunde la întrebarea „ce comandă există pentru asta?”. Cmdlet-urile au nume de forma Verb-Substantiv, așa că poți căuta după substantiv (Get-Command -Noun Service), după verb (Get-Command -Verb Export) sau cu wildcard (Get-Command *csv*). Rezultatul are coloanele CommandType, Name, Version și Source (modulul din care vine comanda).

Pe lângă cmdlet-uri, Get-Command găsește funcții, aliasuri, scripturi și programe din PATH (tipul Application), deci îți spune și unde se află un executabil, de exemplu Get-Command git. Cu numele exact, fără wildcard, importă automat modulul care conține comanda.

Get-Alias lucrează invers față de alias: Get-Alias gci spune că gci înseamnă Get-ChildItem, iar Get-Alias -Definition Get-ChildItem listează toate aliasurile acelui cmdlet. Aliasurile sunt comode în consolă, dar în scripturi e mai clar să scrii numele complet.

Parametri

Parametru Descriere
-Name Numele comenzii sau un model cu wildcard (*-Item). Parametru pozițional.
-Verb Doar comenzile cu verbul dat (Get, Set, New…).
-Noun Doar comenzile cu substantivul dat (Process, Item…).
-Module Doar comenzile dintr-un modul, de exemplu Microsoft.PowerShell.Utility.
-CommandType Tipul: Cmdlet, Function, Alias, Application, ExternalScript, All. Alias: -Type.
-Syntax Afișează doar sintaxa comenzii (pentru un alias, numele comenzii reale).
-All Arată toate comenzile cu același nume, în ordinea în care PowerShell le-ar alege.
Get-Alias -Definition Listează aliasurile unei comenzi.

Ce returnează

Obiecte CommandInfo (CmdletInfo, FunctionInfo, AliasInfo, ApplicationInfo). Get-Alias returnează obiecte AliasInfo.

Exemple

Exemplul 1: Cmdlet-urile care lucrează cu aliasuri

Cauți după substantiv. Coloana Source arată modulul.

Get-Command -Noun Alias

Ieșire în terminal

CommandType     Name                                               Version    Source
-----------     ----                                               -------    ------
Cmdlet          Export-Alias                                       7.0.0.0    Microsoft.PowerShell.Utility
Cmdlet          Get-Alias                                          7.0.0.0    Microsoft.PowerShell.Utility
Cmdlet          Import-Alias                                       7.0.0.0    Microsoft.PowerShell.Utility
Cmdlet          New-Alias                                          7.0.0.0    Microsoft.PowerShell.Utility
Cmdlet          Remove-Alias                                       7.0.0.0    Microsoft.PowerShell.Utility
Cmdlet          Set-Alias                                          7.0.0.0    Microsoft.PowerShell.Utility

Exemplul 2: Din ce modul vine un cmdlet

Proprietatea ModuleName e utilă când vrei să știi ce modul trebuie importat pe alt calculator.

(Get-Command Get-Date).ModuleName

Ieșire în terminal

Microsoft.PowerShell.Utility

Exemplul 3: Aliasurile lui Get-ChildItem (pe Windows)

Aliasurile fără cratimă se afișează în forma alias -> comandă. Pe macOS și Linux, ls lipsește din listă.

Get-Alias -Definition Get-ChildItem

Ieșire în terminal

CommandType     Name                                               Version    Source
-----------     ----                                               -------    ------
Alias           dir -> Get-ChildItem
Alias           gci -> Get-ChildItem
Alias           ls -> Get-ChildItem

Greșeli frecvente

  • Să cauți cu Get-Command după un cuvânt în română sau după descriere: caută doar în nume. Pentru căutare în text folosește Get-Help.
  • Să pui wildcard la -Name și să te aștepți ca modulul să se importe automat: importul automat se face doar cu numele exact.
  • Să folosești aliasuri (gci, %, ?) în scripturi pe care le citesc alții sau care rulează pe Linux: unele aliasuri nu există pe toate platformele.

Comenzi înrudite

  • Get-Help: Afișează documentația unui cmdlet sau a unui subiect about_*; Update-Help descarcă fișierele de ajutor pe calculator.
  • Get-Member: Arată tipul obiectelor dintr-un pipeline și ce proprietăți și metode au, ca să știi ce poți selecta, filtra sau apela.
  • Comenzi CMD și echivalentul PowerShell: Ce folosești în PowerShell în locul comenzilor CMD obișnuite (dir, cd, copy, del, ipconfig, ping, tasklist, taskkill, set).
  • Import-Module: Încarcă un modul în sesiunea curentă; din PowerShell 3.0 modulele instalate se încarcă și singure la prima folosire a unei comenzi.