Die Windows PowerShell ist im Prinzip eine mächtige Alternative zur Windows-Eingabeaufforderung “cmd.exe”. Windows 7 und Server 2008 enthalten bereits standardmäßig die PowerShell 2.0. Für Windows XP, Vista und alle älteren Server-Varianten steht die Version ebenfalls zum Download bereit. Außerdem ist unter Windows 7 auch eine grafische Entwicklungsumgebung für Skripte namens PowerShell ISE enthalten. Diese kann unter anderem über ihren Dateinamen “powershell_ise.exe” gestartet werden. Neben Syntaxhervorhebung und Autovervollständigung ist auch ein Skript-Debugger enthalten.
Nun aber zurück zur PowerShell. Gegenüber der alten Eingabeaufforderung hat sie zahlreiche Vorteile. Neben dem Einsatz von Objekt-Pipelines und Filtern bieten die Kommandos der PowerShell deutlich mehr Möglichkeiten als die Eingabeaufforderung. Beispielsweise hat man Zugriff auf die Registry, auf Systemereignisse und alle laufenden Prozesse können verwaltet werden.
Zur leichteren Bedienbarkeit sind alle gängigen Befehle aus der DOS-Kommandozeile auch in PowerShell verfügbar. Allerdings handelt es sich dabei nur um Aliase, d.h. Kürzel für die Funktionseinheiten der PowerShell. Diese werden auch Cmdlets genannt. Cmdlets sind nach dem Muster Verb-Substantiv aufgebaut, wobei die Groß-/Kleinschreibung keine Rolle spielt. Die aktuell definierten Aliase erfährt man über den Befehl Get-Alias. Nachfolgend eine kurze Übersicht der gängisten DOS-Befehle und deren Entsprechungen in PowerShell.
cmd.exe |
Windows PowerShell (Alias) |
Windows PowerShell (Cmdlet) |
Beschreibung |
cd |
gl, pwd |
Get-Location |
gibt das aktuellen Verzeichnis aus |
cd, chdir |
sl, cd, chdir |
Set-Location |
wechselt das aktuelle Verzeichnis |
cls |
cls, clear |
Clear-Host |
leert den Bildschirm |
copy |
cpi, copy, cp |
Copy-Item |
kopiert eine oder mehrerere Dateien oder einen ganzen Ordner |
help |
help, man |
Get-Help |
Hilfe zu Befehlen |
help |
gcm |
Get-Command |
Liste aller verfügbaren Befehle |
del, rmdir, rd |
ri, del, erase, rmdir, rd, rm |
Remove-Item |
löscht eine Datei oder einen Ordner |
ren |
rni, ren |
Rename-Item |
benennt eine Datei oder einen Ordner um |
move |
mi, move, mv |
Move-Item |
verschiebt eine Datei oder einen Ordner |
dir |
gci, dir, ls |
Get-ChildItem |
Liste aller Dateien und Ordner im (aktuellen) Verzeichnis |
echo |
echo, write |
Write-Output |
gibt Zeichenketten, Variablen etc. aus |
popd |
popd, man |
Pop-Location |
wechselt in das Verzeichnis, welches zuletzt auf dem Stack abgelegt wurde |
pushd |
pushd |
Push-Location |
Verzeichnis auf dem Stack ablegen |
set |
sv, set |
Set-Variable |
Variable anlegen oder Wert einer Variable setzen |
type |
gc, type, cat |
Get-Content |
Ausgabe einer Datei |
find, findstr |
|
Select-String |
Suche und Filterung definierter Zeichenketten |
tasklist |
gps, ps |
Get-Process |
Liste aller momentan laufenden Prozesse |
taskkill |
spps, kill |
Stop-Process |
beendet einen laufenden Prozess |
|
tee |
Tee-Object |
Standardeingabe in eine Datei oder Variable umleiten und entlang der Pipeline weiterreichen (Standardausgabe) |
Abschließend noch ein Beispiel für die Benutzung der Objekt-Pipeline. Damit können mehrere Befehle zu einer Kette verbunden werden. Im Gegensatz zu herkömmlichen Shells bestehen die Ein- und Ausgaben bei der PowerShell nicht aus reinem Text, sondern aus Objekten. Dadurch kann man direkt auf die Eigenschaften und Methoden der gelieferten Objekte zugreifen.
dir *.txt | sort Length -Descending | ft Name, Length | more
Dieser Befehl listet alle Textdateien innerhalb des aktuellen Verzeichnises mit Name und Größe auf. Dabei werden die Textdateien absteigend nach ihrer Größe sortiert. Außerdem bewirkt “more”, dass nur soviel ausgegeben wird, wie in das Fenster passt. Mit der Leertaste lässt sich weiterblättern.
Neueste Kommentare