Cmdlet-Dateisystemoperationen

Dateisystemvorgänge gehören zu den häufigsten und praktischsten Aufgaben in PowerShell.

Von der Erstellung, dem Kopieren, Verschieben und Löschen von Dateien bis zum Abrufen von Dateiattributen und der Stapelverarbeitung von Verzeichnisstrukturen bietet PowerShell eine große Anzahl prägnanter und leistungsstarker Cmdlets, um diese Vorgänge auszuführen.


1. Verzeichnisinhalte anzeigen:Get-ChildItem

Get-ChildItem

Dies ist der Befehl in PowerShell zum Anzeigen von Verzeichnisinhalten (entsprichtlsoderdir) Befehl. Standardmäßig listet er alle Dateien und Unterverzeichnisse im aktuellen Verzeichnis auf.

Du kannst auch den Pfadparameter verwenden:

Get-ChildItem -Path C:\Test

Alle Unterverzeichnisse anzeigen (rekursiv):

Get-ChildItem -Path C:\Test -Recurse

Nach Dateityp filtern:

Get-ChildItem -Path C:\Test -Filter *.txt

2. Dateien und Verzeichnisse erstellen:New-Item

Ein neues Verzeichnis erstellen:

New-Item -Path "C:\Demo" -ItemType Directory

Eine neue Datei erstellen:

New-Item -Path "C:\Demo\example.txt" -ItemType File

Tipp: Wenn das übergeordnete Verzeichnis im Pfad nicht existiert, wird ein Fehler gemeldet. Du musst das übergeordnete Verzeichnis zuerst manuell oder per Skript erstellen.


3. Kopieren und Verschieben:Copy-ItemundMove-Item

Eine Datei kopieren:

Copy-Item -Path "C:\Demo\example.txt" -Destination "D:\Backup"

Einen gesamten Ordner kopieren (einschließlich seines Inhalts):

Copy-Item -Path "C:\Demo" -Destination "D:\Backup" -Recurse

Eine Datei verschieben:

Move-Item -Path "C:\Demo\example.txt" -Destination "C:\Demo2"

4. Dateien und Verzeichnisse löschen:Remove-Item

Eine Datei löschen:

Remove-Item -Path "C:\Demo\example.txt"

Einen Ordner und seinen Inhalt löschen:

Remove-Item -Path "C:\Demo" -Recurse -Force

Erklärung:

  • -Recurse: Alle Inhalte unter dem Verzeichnis löschen
  • -Force: Versteckte oder schreibgeschützte Dateien zwangsweise löschen

5. Dateien lesen und schreiben:Get-Content / Set-Content / Add-Content

Dateiinhalte lesen:

Get-Content -Path "C:\Demo\example.txt"

Inhalt schreiben (überschreiben):

Set-Content -Path "C:\Demo\example.txt" -Value "Hello PowerShell"

Inhalt anhängen:

Add-Content -Path "C:\Demo\example.txt" -Value "Another line"

6. Umbenennen von Dateien und Existenzprüfung

Eine Datei umbenennen:

Rename-Item -Path "C:\Demo\example.txt" -NewName "renamed.txt"

Feststellen, ob eine Datei existiert:

Test-Path -Path "C:\Demo\renamed.txt"

Gibt True zurück, wenn sie existiert, andernfalls gibt sie False zurück.


7. Dateieigenschaften abrufen:Get-Item

$item = Get-Item -Path "C:\Demo\renamed.txt"
$item.Length         # 文件大小(字节)
$item.CreationTime   # 创建时间
$item.Extension      # 扩展名

Hinweis: Der Rückgabewert ist einSystem.IO.FileInfoTypobjekt, und Sie können weiterhin die Eigenschaften des Objekts verwenden.


8. Beispiel für kombinierte Operationen: Stapelverarbeitung von Dateien

Alle im Verzeichnis stapelweise auflisten.logGesamtdateigröße:

Get-ChildItem -Path "C:\Logs" -Filter *.log | Measure-Object -Property Length -Sum

Beispielausgabe:

Count    : 15
Sum      : 1289345
Property : Length

Inhalte aller .txt-Dateien an eine neue Datei anhängen:

Get-ChildItem -Path "C:\TextFiles" -Filter *.txt | ForEach-Object {
    Get-Content $_.FullName | Add-Content -Path "C:\AllText.txt"
}

9. Vorsichtsmaßnahmen und häufige Fallstricke

Problem Beschreibung
Leerzeichen im Pfad Anführungszeichen verwenden"um die gesamte Pfadzeichenkette einzuschließen
Verzeichnisse und Dateien unterscheiden New-ItemMuss angegeben werden-ItemType FileoderDirectory
Fehler bei der Operation, wenn die Datei nicht existiert Verwenden SieTest-Pathvor der Verarbeitung prüfen
Seien Sie vorsichtig bei Löschbefehlen Remove-ItemVerwenden Sie-Recursemit Vorsicht, um versehentliches Löschen zu vermeiden

10. Zusammenfassung und Empfehlungen

PowerShell ist sehr leistungsstark bei Dateisystemvorgängen und bietet die folgenden Vorteile:

  • Befehle sind intuitiv und einheitlich, mit geringem Lernaufwand
  • Unterstützt Objektoperationen und kann mit anderen Befehlen kombiniert werden
  • Kann für Batch-Aufgaben und Automatisierungsskripte verwendet werden

Empfohlene Lernmethode:

  1. Üben Sie verschiedene Befehle wiederholt in einem temporären Verzeichnis
  2. Beherrschen Sie die fünf Kernbefehle:New-Item、Remove-Item、Copy-Item、Get-Content、Set-Content
  3. Versuchen Sie, Befehle in Skripte zu kapseln, um mehrere Dateien stapelweise zu verarbeiten
Weitere Erweiterungen