PowerShell Dateisystem Cheatsheet

7 Kern-Cmdlets
Die wichtigsten PowerShell-Cmdlets für die Arbeit mit dem Dateisystem: Get-ChildItem · New-Item · Copy-Item · Move-Item · Remove-Item · Get-Content · Set-Content Mit diesen Cmdlets können Sie Dateien und Verzeichnisse auflisten, erstellen, kopieren, verschieben, löschen sowie Dateiinhalte lesen und schreiben.

Get-ChildItem – Verzeichnisinhalt anzeigen

Get-ChildItem [-Path] Pfad [-Recurse] [-File] [-Directory]
Get-ChildItem -Path C:\Users -Recurse -File *.log

Get-ChildItem (Alias: dir, ls) listet Dateien und Verzeichnisse auf. Mit Optionen wie -Recurse und -File lässt sich die Ausgabe präzise steuern.

Häufige Optionen

Option Beschreibung
-Recurse Rekursive Suche in Unterverzeichnissen
-File Nur Dateien anzeigen
-Directory Nur Verzeichnisse anzeigen
-Filter Filtert nach Dateinamen (Wildcards)
-Hidden Versteckte Elemente einbeziehen
-Depth Rekursionstiefe begrenzen
Beispiele
Get-ChildItem # Aktuelles Verzeichnis auflisten
Get-ChildItem -Path C:\Windows -File # Nur Dateien in C:\Windows
Get-ChildItem -Recurse -Filter *.log # Alle .log-Dateien rekursiv
ls -Recurse # Alias ls mit Rekursion
dir -Directory # Nur Verzeichnisse
Typische Ausgabe von Get-ChildItem:
Mode LastWriteTime Length Name
d----- 15.03.2025 10:30 Dokumente
-a---- 15.03.2025 09:15 1024 datei.txt
Tipp: Get-ChildItem -Recurse -File *.log ist die PowerShell-Entsprechung zu find . -name "*.log" unter Linux.

New-Item – Datei oder Verzeichnis erstellen

New-Item -Path Pfad -ItemType (File|Directory)
New-Item -Path C:\temp\neue_datei.txt -ItemType File

New-Item erstellt neue Dateien oder Verzeichnisse. Mit -ItemType wird der Typ festgelegt.

Wichtige Optionen

Option Beschreibung
-Path Pfad der neuen Datei / des neuen Verzeichnisses
-ItemType File Erstellt eine leere Datei
-ItemType Directory Erstellt ein Verzeichnis
-Value Inhalt für die neue Datei (optional)
-Force Überschreibt vorhandene Elemente
Beispiele
New-Item -Path .\neue_datei.txt -ItemType File # Leere Datei erstellen
New-Item -Path C:\temp\neuer_ordner -ItemType Directory # Verzeichnis erstellen
New-Item -Path .\config.ini -Value "setting=value" # Datei mit Inhalt erstellen
ni -Path C:\temp\test -ItemType Directory # Alias ni für New-Item
Tipp: New-Item -ItemType Directory -Path .\src\lib\utils -Force erstellt alle fehlenden Unterverzeichnisse, falls sie noch nicht existieren.

Copy-Item – Dateien kopieren

Copy-Item [-Path] Quelle [-Destination] Ziel [-Recurse]
Copy-Item -Path datei.txt -Destination C:\backup\datei.txt

Copy-Item kopiert Dateien oder Verzeichnisse (mit -Recurse). Die Quelle bleibt unverändert.

Häufige Optionen

Option Beschreibung
-Destination Zielpfad (Datei oder Verzeichnis)
-Recurse Kopiert Verzeichnisse rekursiv
-Force Überschreibt vorhandene Dateien
-Filter Filtert die zu kopierenden Elemente
Beispiele
Copy-Item datei.txt C:\backup\ # Datei in Ordner kopieren
Copy-Item -Path *.log -Destination C:\logs\ # Alle .log-Dateien kopieren
Copy-Item -Path C:\temp\src\ -Destination C:\temp\backup\ -Recurse # Verzeichnis rekursiv kopieren
cp -Recurse src\ dst\ # Alias cp
Copy-Item datei.txt neue_datei.txt # Datei im gleichen Ordner kopieren
Tipp: Verwenden Sie -Force, um vorhandene Dateien zu überschreiben. Ohne -Force werden Sie bei Konflikten nach einer Bestätigung gefragt.

Move-Item – Verschieben oder umbenennen

Move-Item [-Path] Quelle [-Destination] Ziel
Move-Item -Path datei.txt -Destination C:\archive\datei.txt

Move-Item verschiebt Dateien oder Verzeichnisse – oder benennt sie um, wenn Quelle und Ziel im gleichen Verzeichnis liegen.

Häufige Optionen

Option Beschreibung
-Destination Zielpfad (neuer Name oder neuer Ort)
-Force Überschreibt vorhandene Dateien
-Filter Filtert die zu verschiebenden Elemente
Beispiele
Move-Item datei.txt neuer_name.txt # Datei umbenennen
Move-Item *.log C:\archive\ # Alle .log-Dateien verschieben
Move-Item -Path C:\temp\src\ -Destination C:\temp\archive\ # Verzeichnis verschieben
mv datei.txt neue_datei.txt # Alias mv
Tipp: Anders als unter Linux hat PowerShell eigene Cmdlets für Kopieren (Copy-Item) und Verschieben (Move-Item). Verwenden Sie das richtige Cmdlet, um versehentliches Löschen zu vermeiden.

Remove-Item – Dateien löschen

Remove-Item [-Path] Pfad [-Recurse] [-Force]
Remove-Item -Path *.tmp -Recurse

Remove-Item löscht Dateien und (mit -Recurse) Verzeichnisse. Dieser Befehl ist endgültig – es gibt keinen Papierkorb!

Häufige Optionen

Option Beschreibung
-Recurse Löscht Verzeichnisse mit gesamten Inhalt
-Force Überspringt Warnungen (auch versteckte/read-only Dateien)
-Filter Filtert die zu löschenden Elemente
Beispiele
Remove-Item datei.txt # Datei löschen
Remove-Item *.tmp # Alle .tmp-Dateien löschen
Remove-Item -Path C:\temp\alte_daten\ -Recurse # Verzeichnis rekursiv löschen
rm -Recurse C:\temp\ordner\ # Alias rm
del *.tmp # Alias del (wie CMD)
⚠️ Warnung: Remove-Item -Recurse -Force löscht Verzeichnisse endgültig und unwiderruflich. Überprüfen Sie immer den Pfad, bevor Sie diesen Befehl ausführen!

Get-Content – Dateiinhalt anzeigen

Get-Content [-Path] Pfad [-Tail] [-Wait]
Get-Content -Path C:\log\app.log -Tail 50

Get-Content (Alias: cat, type) liest den Inhalt einer Datei und gibt ihn aus. Mit -Tail können Sie die letzten Zeilen anzeigen (ähnlich tail unter Linux).

Häufige Optionen

Option Beschreibung
-Tail N Zeigt die letzten N Zeilen an (standardmäßig 10)
-Wait Überwacht die Datei auf neue Einträge (wie tail -f)
-TotalCount N Zeigt nur die ersten N Zeilen
-Raw Liest die gesamte Datei als einzelner String
Beispiele
Get-Content datei.txt # Gesamte Datei anzeigen
Get-Content -Path C:\log\app.log -Tail 50 # Letzte 50 Zeilen
Get-Content -Path C:\log\app.log -Wait # Live-Überwachung (Ctrl+C zum beenden)
cat datei.txt # Alias cat
Typische Ausgabe von Get-Content datei.txt:
Zeile 1: Inhalt der Datei
Zeile 2: Weitere Informationen
Zeile 3: ...
Tipp: Get-Content -Tail 100 -Wait ist die PowerShell-Version von tail -f – perfekt für die Überwachung von Log-Dateien.

Set-Content – Dateiinhalt schreiben

Set-Content [-Path] Pfad [-Value] Inhalt
Set-Content -Path datei.txt -Value "Neuer Inhalt"

Set-Content schreibt Text in eine Datei – der vorhandene Inhalt wird überschrieben. Mit Add-Content können Sie hingegen Text an eine Datei anhängen.

Häufige Optionen

Option Beschreibung
-Value Der Inhalt, der geschrieben werden soll
-Encoding Zeichensatz (z.B. UTF8, ASCII)
-NoNewline Keine neue Zeile am Ende hinzufügen
Beispiele
Set-Content -Path datei.txt -Value "Hallo Welt" # Inhalt überschreiben
Set-Content -Path config.ini -Value "setting=value`noption=on" # Mehrzeiliger Inhalt
Add-Content -Path log.txt -Value "Neue Log-Zeile" # An Datei anhängen
"Hallo Welt" | Set-Content datei.txt # Pipeline-Variante
Tipp: Mit Add-Content können Sie Text an eine Datei anhängen, ohne den vorhandenen Inhalt zu überschreiben. Verwenden Sie Set-Content, um eine Datei komplett zu ersetzen.

Dateisystem-Cmdlets im Überblick

Verb Jedes Cmdlet beginnt mit einem Verb, das die Aktion beschreibt.
Get, New, Copy, Move, Remove, Set, Add
-Path Der Pfad zur Datei oder zum Verzeichnis.
Absolut oder relativ möglich
-Recurse Rekursive Operation auf Unterverzeichnisse.
Wichtig für Verzeichnis-Operationen
-Force Überschreibt / ignoriert Warnungen.
Vorsichtig verwenden!

Quick Summary

Get-ChildItem
Inhalt auflisten
New-Item
Erstellen
Copy-Item
Kopieren
Move-Item
Verschieben / Umbenennen
Remove-Item
Löschen
Get-Content
Inhalt anzeigen
Set-Content
Inhalt schreiben
Get-ChildItem -Recurse -File *.log | Copy-Item -Destination C:\backup\ – Alle .log-Dateien rekursiv kopieren