Leistungen
Leistungen
Überblick
Leistungsangebot
Kernkompetenzen
Schulungsthemen
In-House-Schulungen
Offene .NET-Seminare
Offene WPS-Seminare
Beratung
Coaching
Support
Softwareentwicklung
Entwickler-Vermittlung
.NET/Visual Studio
TFS/ALM/Scrum
Webprogrammierung
PowerShell
Konditionen
Anfrage/Kontakt
Beratung/Coaching
Beratung/Coaching
Beratungsthemen
Coaching
Unsere Berater
Referenzkunden
Konditionen
Angebotsanfrage
In-House-Schulungen
In-House-Schulungen
Überblick
Themen/Fachgebiete
Schulungskonfigurator
Konzepte
.NET/Visual Studio
C#
VB.NET
ASP.NET
Moderne Webanwendungen
TFS/ALM/Scrum
PowerShell
Konferenzvortraege
Referenzkunden
Unsere Trainer
Konditionen
Angebotsanfrage
Offene Schulungen
Offene Schulungen
Überblick .NET-Seminare
.NET/C#-Basisseminar
WPF (Desktop)
ASP.NET/AJAX (Web)
WCF/WF (SOA)
ADO.NET/EF (Data)
Windows PowerShell
.NET, C#, VB, Visual Studio
.NET, C#, VB, Visual Studio
Startseite
Beratung/Training
Offene .NET-Seminare
Einführung
Lexikon
Artikel
Bücher
Klassenreferenz
Programmiersprachen
Entwicklerwerkzeuge
Softwarekomponenten
World Wide Wings Demo
Codebeispiele
Scripting
ASP.NET
.NET 2.0
.NET 3.0/3.5
.NET 4.0/4.5
Community
Forum
Kommerzielle Leistungen
ASP.NET
ASP.NET
Startseite
Lexikon
Sicherheit
Konfiguration
Global.asax
Tracing
Technische Beiträge
Klassenreferenz
Programmiersprachen
Entwicklerwerkzeuge
Softwarekomponenten
PowerShell
PowerShell
Überblick
Beratung
In-House-Schulungen
Öffentliche Schulungen
Codebeispiele
Commandlet Extensions
Offene PowerShell-Seminare
Inhouse-Seminare
Windows
Windows
Startseite
Windows Runtime (WinRT)
Windows PowerShell
Windows Scripting
Windows-Schulungen
Windows-Lexikon
Windows-Forum
Windows Scripting
Windows Scripting
Startseite
Lexikon
FAQ
Buecher
Architektur
Skriptsprachen
Scripting-Hosts
Scripting-Komponenten
COM/DCOM/COM+
ADSI
WMI
Scripting-Tools
WSH-Editoren
Codebeispiele
ASP.NET
.NET-Scripting
Forum
Links
Kommerzielle Leistungen
Service
Service
Website-FAQ
Anmeldung/Login
Leser-Registrierung
Gast-Registrierung
Nachrichten/RSS
Newsletter
Foren
Weblog
Lexikon
Downloads
Support
Kontakt
Literaturtipps
Publikationen
Publikationen
Redaktionsbüro
Bücher
Fachartikel
Leser-Portal
Autoren gesucht!
Rezensionen
Über uns
Über uns
Holger Schwichtenberg
Team
Referenzkunden
Kundenaussagen
Referenzprojekte
Partner
Site Map
Weitere Websites
Tag Cloud
Impressum
Rechtliches

Erklärung des Begriffs: Commandlet (Cmdlet)
Was ist Commandlet (Cmdlet)?

Zurück zur Stichwortliste



Begriff Commandlet
Abkürzung Cmdlet
Synonyme/Aliase

Erläuterung des Begriffs Commandlet

Ein einzelner MSH-Befehl heißt Commandlet (kurz Cmdlet). Ein Commandlet besteht typischerweise aus drei Teilen: einem Verb, einem Substantiv und einer Parameterliste. Verb und Substantiv werden durch einen Schrägstrich voneinander getrennt, die optionalen Parameter durch Leerzeichen. Daraus ergibt sich folgender Aufbau:

Verb-Substantiv [-Parameterliste]

(Achtung: In Preview Version 1 war die Syntax noch Verb/Substantiv)
Die Groß- und Kleinschreibung der Commandlet-Namen und der Parameternamen ist irrelevant.

Beispiele



Ein einfaches Beispiel ist:

get-process

Dadurch wird eine Liste aller Prozesse in der MSH ausgegeben. Beachten Sie, dass das Substantiv im Singular steht, auch wenn hier eine Menge von Objekten abgerufen wird. Das Ergebnis muss nicht immer eine Objektmenge sein. Beispielsweise liefert

get-location

nur ein Objekt mit dem aktuellen Pfad.
Neben get existieren andere Verben wie set, add, remove, copy, move und rename. Neben diesen Basisoperationen gibt es auch Ausgabekommandos wie out und format. Auch Bedingungen werden durch diese Syntax abgebildet (where-object). Tabelle 1 zeigt eine Liste aller in der Version 0.3 implementierten Befehle. Diese Liste erhält man in der MSH auch durch

get-command

Ein Beispiel für einen Befehl mit Parameter ist:

get-children c:\daten

get-children listet alle Unterobjekte des angegebenen Objekts (c:\daten) auf, also alle Dateien und Ordner unterhalb dieses Dateiverzeichnisses.
Mit

Set-location c:\windows

wechselt man den aktuellen Pfad. Durch so genannte Aliase kann die Eingabe verkürzt werden. So ist dir als Alias für get-children vordefiniert. Der letzte Befehl kann also auch geschrieben werden:

dir c:\.

Ebenso als Alias definiert ist der DOS-Befehl cd, der hier set-location maskiert. Durch get-alias (oder den entsprechenden Alias aliases) erhält man eine Liste aller vordefinierten Abkürzungen.
Ebenfalls als Einzelbefehl möglich sind mathematische Ausdrücke wie 10* (8 + 6). Alle Eingaben, die nicht als Commandlets oder mathematische Formeln erkannt werden, werden als ausführbare Dateien behandelt. Die Eingabe c:\Windows\Notepad.exe ist daher möglich, um den beliebten Windows-Editor zu starten.

Details zu Commandlets


Gemäß des PowerShell-Konventionen soll es nur eine begrenzte Menge wiederkehrender Verben geben: Get, Set, Add, New, Remove, Clear, Push, Pop, Write, Export, Select, Sort, Update, Start, Stop, Invoke, usw. Außer diesen Basisoperationen gibt es auch Ausgabekommandos wie out und format. Auch Bedingungen werden durch diese Syntax abgebildet (Where-Object).

Die PowerShell erzeugt beim Start einen Prozess. In diesem Prozess laufen alle Commandlets. Dies ist ein Unterschied zum DOS-Fenster, bei dem die ausfühbare Dateien (.exe) in eigenen Prozessen laufen.

An vielen Stellen sind Platzhalter bei den Parameterwerten erlaubt.
Eine Liste aller Prozesse, die mit einem "i" anfangen erhält man so:
Get-Process i*

Die Liste aller verfügbaren Commandlets erhält man in der PowerShell auch durch
Get-Command

Hilfe zu einem Commandlet bekommt man über Get-help commandletname, z.B.
Get-Help Get-Process

Hingegen listet
Get-help get
alle Commandlets auf, die das Verb get verwenden.

Erstellung von Commandlets


Die Erstellung von Commandlets ist wahlweise per PowerShell-Skript (siehe Funktionsbasiertes Commandlet) als auch über .NET Framework-Programmierung mit einer .NET-fähigen Programmiersprache (üblicherweise C# oder Visual Basic .NET) möglich. In den anderen beiden Fällen geht nur .NET-Programmierung. Damit liegen diese Themen außerhalb der Reichweite dieses Buchs, da hierzu .NET-Programmierkenntnisse erforderlich sind.

Weitere Ressoucen auf dieser Website

PowerShell-Codebeispiele
PowerShell-Community-Website

Artikel in gedruckten Medien

  • Microsoft .NET 3.0 Crashkurs
     (.NET 3.0 Crashkurs, 2007)
  • Querverweise zu anderen Begriffen im Lexikon

    Visual Basic .NET
    Objektmenge
    Powershell
    Prozesse


    Dienstleistungen:

    Beratung/Consulting zu Commandlet

    Support zu Commandlet

    Schulungen zu diesem Thema: