Podczas pracy z Windows PowerShell mógł pojawić się termin cmdlet i okazało się nieco zdezorientowany. Czy cmdlet jest czymś zupełnie innym od polecenia, czy jest to dla nich tylko nazwa PowerShell? Dzisiejszy post z pytaniami i odpowiedziami dla SuperUser zawiera odpowiedź na ciekawe pytanie czytelnika.
Dzisiejsza sesja pytań i odpowiedzi przychodzi do nas dzięki uprzejmości SuperUser - poddziału Stack Exchange, społecznościowego forum z pytaniami i odpowiedziami.
Czytnik SuperUser RBT chce wiedzieć, dlaczego polecenia Windows PowerShell są nazywane cmdletami:
Próbowałem dowiedzieć się nomenklatury, dlaczego polecenia są nazywane command-lets (cmdlets) w PowerShell. Dlaczego nie nazywają się po prostu komendami? Jaka jest różnica?
Mogę tylko zgadywać na podstawie tego artykułu z Wikipedii o PowerShellu, że może on w jakiś sposób być skrótem interfejsu wiersza poleceń do interakcji z poleceniami napisanymi w .Net.
Dlaczego polecenia programu Windows PowerShell są nazywane cmdletami?
Pomocnik SuperUser LotPings ma dla nas odpowiedź:
Według Microsoft:
Polecenie cmdlet to lekkie polecenie używane w środowisku Windows PowerShell. Środowisko wykonawcze środowiska Windows PowerShell wywołuje te polecenia cmdlet w kontekście skryptów automatyzacji dostarczanych w wierszu polecenia. Środowisko wykonawcze środowiska Windows PowerShell również wywołuje je programowo za pomocą interfejsów API Windows PowerShell.
Czym różnią się cmdlety od poleceń
Polecenia cmdlet różnią się od poleceń w innych środowiskach powłoki poleceń w następujący sposób:
- Cmdlets są instancjami klasy .NET Framework; nie są samodzielnymi plikami wykonywalnymi.
- Polecenia cmdlet można utworzyć z zaledwie kilku linii kodu.
- Polecenia cmdlet generalnie nie wykonują własnej analizy składniowej, prezentacji błędów ani formatowania wyjściowego. Analiza składniowa, prezentacja błędów i formatowanie wyjściowe są obsługiwane przez środowisko wykonawcze Windows PowerShell.
- Polecenia cmdlet przetwarzają obiekty wejściowe z potoku, a nie ze strumieni tekstu, a polecenia cmdlet zwykle dostarczają obiekty jako dane wyjściowe do potoku.
- Polecenia cmdlet są zorientowane na rekordy, ponieważ przetwarzają pojedynczy obiekt naraz.
Źródło: Omówienie Cmdlet [Microsoft]
Czy masz coś do dodania do wyjaśnienia? Dźwięk w komentarzach. Chcesz przeczytać więcej odpowiedzi od innych użytkowników Stack Exchange, którzy znają się na technologii? Sprawdź cały wątek dyskusji tutaj.