Text rein, Text raus: die Grenze, die cmd-Skripte bricht
cmd ist eine Text-Shell: dir druckt formatierte Spalten, und alles, was man eigentlich wollte — Größe, Datum, Name —, kommt als Zeichenkette daher, die man erst aus einer Seite herausschneiden muss. Skripte auf dieser Basis brechen an dem Tag, an dem eine Regionaleinstellung einen Monat anders schreibt, eine Spalte breiter wird oder ein Dateiname ein Leerzeichen trägt. Wer Batchdateien gepflegt hat, kennt den Ritus: FOR /F mit Tokens und Delimitern, ein kleines Gebet und eine zweite Version für Rechner, die in einer anderen Sprache antworten.
PowerShell, 2006 erschienen und auf .NET gebaut, wurde entworfen, um genau das zu beenden. Get-ChildItem druckt keine Zeilen — es liefert FileInfo-Objekte, die Name, Length, LastWriteTime und Extension als Daten tragen. Die Pipeline zwischen Befehlen reicht diese Objekte komplett weiter, sodass ein Filter in Moskau in München identisch läuft und eine Summe eine Zahl ist, die man runden und formatieren kann — kein String, dem man glauben muss.
Cmdlets nach Verb-Substantiv, die sich sauber zusammensetzen
Befehle hier sind Cmdlets nach dem Muster Verb-Substantiv — Get-ChildItem, Where-Object, Measure-Object, Remove-Item —, und die Disziplin ist keine Kosmetik: genehmigte Verben halten eine Pipeline auch ein halbes Jahr später lesbar, wie ein beschrifteter Werkzeugkasten eine Schublade voller namenloser Schraubendreher schlägt. Beim Aufräumen zählt die Zusammensetzung mehr als jeder einzelne Befehl: finden, filtern, messen, löschen ist eine Zeile Datenfluss statt vier Absätze Batch-Syntax. Jede Stufe benennt sich zudem selbst, sodass ein hastig geschriebener Einzeiler einen Monat später noch wie ein Satz liest.
Der leisere Gewinn ist Sicherheit. Remove-Item versteht -WhatIf: Es druckt jede Löschung, die es ausführen würde — und führt keine aus; -Confirm fragt Datei für Datei. So einen Probelauf hatte cmd nie. Get-AppxPackage lässt sich direkt in Remove-AppxPackage pipen, womit das Entfernen einer mitgelieferten App eine Pipeline ist statt einer Registrierungsjagd. Das macht Löschen nicht harmlos, aber überprüfbar — und genau diese Eigenschaft fehlte Aufräumskripten immer.
- Get-ChildItem $env:TEMP -Recurse — ein FileInfo-Objekt pro Datei, mit Length und LastWriteTime als Daten
- Where-Object Length -gt 100MB — ein Filter auf Objekten, immun gegen Regionaleinstellung und Spaltenbreite
- Measure-Object Length -Sum — die Gigabyte-Summe als Zahl, nicht als neu zu parsender String
- Remove-Item ... -WhatIf — ein Probelauf, der jede Löschung auflistet, die er ausführen würde
- Get-AppxPackage *zune* | Remove-AppxPackage — Appx-Entfernung als eine Pipeline
Wo cmd weiterhin gewinnt — und die ehrlichen Grenzen
PowerShell ist nicht umsonst. Sie startet langsamer als cmd, ihre Ausführungsrichtlinie stoppt Neulinge, die ein heruntergeladenes .ps1 starten, bevor Set-ExecutionPolicy -Scope CurrentUser RemoteSigned gesetzt ist, und ein rekursives Get-ChildItem über eine ganze Platte kriecht neben spezialisierten Scannern. Für die Klassiker — ipconfig, sfc, powercfg — bleibt cmd das leichtere Fenster, und diese zwanzig Befehle setzt niemand hier außer Kraft.
Die zweite ehrliche Grenze ist die Nebenläufigkeit: Löschen läuft in einem Thread, und ein riesiger Baum kleiner Dateien dauert, so lange er dauert. Die Bilanz bleibt trotzdem klar. Überall, wo gemessen, gefiltert oder vor dem Löschen berichtet wird, behandelt PowerShell Ihr System als Daten statt als abzukratzenden Bildschirm — und die Einzeiler aus unserem Folgebeitrag brauchen nichts weiter als Kopieren und Einfügen.
Fragen und Antworten
Ist PowerShell besser als cmd zum Aufräumen von Windows?
Für alles, was filtert, misst oder Löschungen im Probelauf zeigt: ja — Objektpipelines überleben jede Regionaleinstellung und berichten vor dem Zugriff. Für die Klassiker — ipconfig, sfc, chkdsk — bleibt cmd das schnellere Fenster.
Was ist der Unterschied zwischen Windows PowerShell und PowerShell 7?
Windows PowerShell 5.1 steckt im System und läuft auf .NET Framework; PowerShell 7 ist der plattformübergreifende Nachfolger, den man separat installiert. Aufräum-Einzeiler laufen in beiden unverändert.
Vor dem Kauf genau wissen, was enthalten ist.
Der einmalige 30-Minuten-Test umfasst Basisfunktionen. PRO-markierte Werkzeuge bleiben bis zur Aktivierung einer kostenpflichtigen Lizenz gesperrt.
Weiterlesen
Schreiben Sie uns: [email protected]