PowerShell Ordner löschen

Migel Hewage Nimesha 30 Januar 2023
  1. Verwenden das Cmdlet Remove-item, um einen Ordner in PowerShell zu löschen
  2. Verwenden Sie die Eingabeaufforderung, um einen Ordner in PowerShell zu löschen
  3. Verwenden die Objektmethode FileSystem, um einen Ordner in PowerShell zu löschen
  4. Verwenden der .Net-Klasse zum Löschen eines Ordners in PowerShell
PowerShell Ordner löschen

Die Ordnerlöschaktion in PowerShell entfernt einen Ordner von einem bestimmten Speicherort, unabhängig davon, ob es sich um einen lokalen oder freigegebenen Pfad handelt.

Dieser Artikel konzentriert sich auf die verschiedenen Methoden zum Löschen eines Ordners mit PowerShell.

Verwenden das Cmdlet Remove-item, um einen Ordner in PowerShell zu löschen

Mit dem Cmdlet Remove-Item können ein oder mehrere Objekte entfernt werden.

Wir können zwei verschiedene Syntaxen zum Löschen verwenden. Es sollte jedoch beachtet werden, dass diese beiden separat verwendet, aber nicht kombiniert werden können.

  • Syntax 1
Remove-Item
      [-Path] <String[]>
      [-Filter <String>]
      [-Include <String[]>]
      [-Exclude <String[]>]
      [-Recurse]
      [-Force]
      [-Credential <PSCredential>]
      [-WhatIf]
      [-Confirm]
      [-Stream <String[]>]
      [<CommonParameters>]
  • Syntax 2
Remove-Item
      -LiteralPath <String[]>
      [-Filter <String>]
      [-Include <String[]>]
      [-Exclude <String[]>]
      [-Recurse]
      [-Force]
      [-Credential <PSCredential>]
      [-WhatIf]
      [-Confirm]
      [-Stream <String[]>]
      [<CommonParameters>]

Sowohl -Path als auch -Literalpath können nicht in derselben Syntax verwendet werden.

Remove-item-Parameter

Der Name und die Beschreibung der am häufigsten verwendeten Parameter sind unten angegeben.

Name Beschreibung
-Path Der Ort der zu entfernenden Sachen wird angegeben. Es gibt keine Beschränkungen für die Verwendung von Platzhalterzeichen.
-LiteralPath Angegebener Pfad zu einem oder mehreren Standorten
-Confirm Vor dem Ausführen des Cmdlets wird eine Bestätigung angefordert
-Exclude Elemente, die das Cmdlet während des Vorgangs ausschließt
-Credential Alle von PowerShell installierten Anbieter unterstützen diesen Parameter nicht. Verwenden Sie Invoke-Command, um die Identität eines anderen Benutzers anzunehmen oder Ihre Berechtigungen zu eskalieren, wenn Sie dieses Cmdlet verwenden.
-Filter filtern, um den Pfadparameter zu validieren
-Force Erzwingen Sie das Entfernen von Objekten, die nicht anderweitig geändert werden können, z. B. private oder schreibgeschützte Dateien/Aliase oder Variablen.
-Include Elemente, die das Cmdlet während des Vorgangs einschließt
-Recurse Dieses Cmdlet verwirft die Objekte an den angegebenen Orten sowie alle untergeordneten Elemente der Orte.
-Stream Das Stream-Argument ist ein dynamischer Parameter, der vom FileSystem-Anbieter zu Remove-Item hinzugefügt wird. Diese Einstellung gilt nur für Laufwerke mit einem Dateisystem.
-WhatIf Zeigt, was passiert, wenn das Cmdlet ausgeführt wird.

Sehen wir uns einige Beispiele zusammen mit verschiedenen Syntaxverwendungen an,

Beispiel 1:

Hier löschen wir den Ordner test1 mit dem unten erwähnten Befehl, und am Ende können Sie sehen, dass der Ordner gelöscht wird.

Remove-Item 'D:\temp\Test1'

Beispiel 2:

Wir löschen rekursiv den Ordner test2. PowerShell prüft, ob das Verzeichnis im vorherigen Beispiel leer ist. In diesem Szenario wird nur der Ordner entfernt.

Remove-Item 'D:\temp\test2' -Recurse

Beispiel 3: Verwendung von -LiteralPath in -RemoveItem

Der -LiteralPath wird zusammen mit den Parametern -Force und -Recurse verwendet. Daher werden die Elemente zusammen mit dem Ordner im angegebenen Pfad ohne Bestätigungsaufforderung zwangsweise gelöscht.

Remove-Item -LiteralPath "foldertodelete" -Force -Recurse

Beispiel 4: Remove-item als Pipeline

Wir verwenden zuerst das Get-ChildItem, um die Ordner und Dateien abzurufen, und dann verwenden wir das Remove-Item, um die Ergebnisse des vorherigen Befehls weiterzuleiten.

Get-ChildItem C:\Temp\TestFolder\ | Remove-Item -Recurse -Force -Verbose

Das einzige Problem dabei ist, dass nur der Inhalt des Ordners gelöscht wird, nicht aber der Ordner selbst; Daher müssen andere Codeausschnitte hinzugefügt werden, um den Ordner zu löschen.

Verwenden Sie die Eingabeaufforderung, um einen Ordner in PowerShell zu löschen

Die meisten Benutzer der Befehlszeile verwenden den Befehl rmdir, um Ordner zu entfernen oder zu löschen. Die Syntax ist rmdir zusammen mit dem Ordnerpfad, wie unten gezeigt.

rmdir C:\Temp\TestFolder

Verwenden die Objektmethode FileSystem, um einen Ordner in PowerShell zu löschen

In PowerShell stehen verschiedene Optionen zum Entfernen eines Ordners zur Verfügung. Eine davon ist die File System Object Method. Dieses Verfahren besteht aus zwei Phasen. Im ersten Schritt konstruieren wir ein Dateisystemobjekt; Als nächstes verwenden wir im zweiten Schritt die Funktion DeleteFolder(), um den Ordner des zugehörigen Objekts zu zerstören.

Erstellen Sie dazu zunächst eine test.ps1-Datei und fügen Sie dann die folgenden unten angegebenen Befehle hinzu.

$object = New-Object -ComObject Scripting.FileSystemObject
$object.DeleteFolder("C:\Temp\TestFolder")

Führen Sie schließlich die Datei test.ps1 aus, und sie löscht unseren beabsichtigten Ordner.

Verwenden der .Net-Klasse zum Löschen eines Ordners in PowerShell

In PowerShell werden die Klasse System.IO.Directory und die Methode Delete() vom .NET-Framework verwendet, um einen Ordner zu löschen. Wenn der angegebene Ordner nicht leer ist, löst dieser Vorgang eine Ausnahme aus:

&gt [System.IO.Directory]::Delete("C:\Temp\TestFolder")

Um diesen nicht leeren Ordner zu entfernen, verwenden Sie die Option $true in der Funktion Delete():

System.IO.Directory]::Delete("C:\Temp\TestFolder", $true)
Migel Hewage Nimesha avatar Migel Hewage Nimesha avatar

Nimesha is a Full-stack Software Engineer for more than five years, he loves technology, as technology has the power to solve our many problems within just a minute. He have been contributing to various projects over the last 5+ years and working with almost all the so-called 03 tiers(DB, M-Tier, and Client). Recently, he has started working with DevOps technologies such as Azure administration, Kubernetes, Terraform automation, and Bash scripting as well.

Verwandter Artikel - PowerShell Directory