PowerShell Supprimer le dossier

Migel Hewage Nimesha 30 janvier 2023
  1. Utilisez la Cmdlet Remove-item pour supprimer un dossier dans PowerShell
  2. Utiliser l’invite de commande pour supprimer un dossier dans PowerShell
  3. Utiliser la méthode objet FileSystem pour supprimer un dossier dans PowerShell
  4. Utilisation de la classe .Net pour supprimer un dossier dans PowerShell
PowerShell Supprimer le dossier

L’action de suppression de dossier dans PowerShell supprime un dossier d’un emplacement donné, qu’il s’agisse d’un chemin local ou partagé.

Cet article se concentre sur les différentes méthodes pour supprimer un dossier à l’aide de PowerShell.

Utilisez la Cmdlet Remove-item pour supprimer un dossier dans PowerShell

Un ou plusieurs objets peuvent être supprimés avec la cmdlet Remove-Item.

Nous pouvons utiliser deux syntaxes différentes pour la suppression. Cependant, il convient de noter que ces deux peuvent être utilisés séparément mais pas combinés.

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

-Path et -Literalpath ne peuvent pas être utilisés dans la même syntaxe.

Paramètres Remove-item

Le nom et la description des paramètres les plus couramment utilisés sont donnés ci-dessous.

Nom La description
-Path L’emplacement des choses à enlever est spécifié. Il n’y a aucune restriction quant à l’utilisation de caractères génériques.
-LiteralPath Chemin spécifié vers un ou plusieurs emplacements
-Confirm Une confirmation est demandée avant d’exécuter la cmdlet
-Exclude Éléments que la cmdlet exclut pendant l’opération
-Credential Les fournisseurs installés sur PowerShell ne prennent pas en charge ce paramètre. Utilisez Invoke-Command pour usurper l’identité d’un autre utilisateur ou élever vos privilèges lors de l’utilisation de cette cmdlet.
-Filter filtre pour valider le paramètre de chemin
-Force Forcer à supprimer les objets qui ne peuvent pas être modifiés autrement, tels que les fichiers/alias privés ou en lecture seule ou les variables.
-Include Éléments inclus dans la cmdlet au cours de l’opération
-Recurse Cette cmdlet supprime les objets dans les emplacements donnés, ainsi que tous les éléments enfants des emplacements.
-Stream L’argument Stream est un paramètre dynamique ajouté à Remove-Item par le fournisseur FileSystem. Ce paramètre s’applique uniquement aux lecteurs dotés d’un système de fichiers.
-WhatIf Montre ce qui se passe si la cmdlet est exécutée.

Regardons quelques exemples avec différentes utilisations de la syntaxe,

Exemple 1:

Ici, nous allons supprimer le dossier test1 à l’aide de la commande mentionnée ci-dessous, et à la fin, vous pouvez voir que le dossier sera supprimé.

Remove-Item 'D:\temp\Test1'

Exemple 2 :

Nous allons supprimer récursivement le dossier test2. PowerShell vérifie si le répertoire est vide dans l’exemple précédent. Il supprimera simplement le dossier dans ce scénario.

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

Exemple 3 : Utilisation de -LiteralPath dans -RemoveItem

Le -LiteralPath est utilisé avec les paramètres -Force et -Recurse. Ainsi, il supprime avec force les éléments ainsi que le dossier dans le chemin donné sans aucune invite de confirmation.

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

Exemple 4 : Remove-item comme pipeline

Nous utilisons d’abord le Get-ChildItem pour récupérer les dossiers et les fichiers, puis nous utilisons le Remove-Item pour canaliser les résultats de la commande précédente.

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

Le seul problème ici est qu’il ne supprime que le contenu du dossier mais pas le dossier lui-même ; par conséquent, d’autres extraits de code doivent être ajoutés pour supprimer le dossier.

Utiliser l’invite de commande pour supprimer un dossier dans PowerShell

La plupart des utilisateurs en ligne de commande utiliseront la commande rmdir pour supprimer ou supprimer des dossiers. La syntaxe est rmdir avec le chemin du dossier, comme indiqué ci-dessous.

rmdir C:\Temp\TestFolder

Utiliser la méthode objet FileSystem pour supprimer un dossier dans PowerShell

Différentes options pour supprimer un dossier sont disponibles dans PowerShell. L’une d’entre elles est la méthode d’objet du système de fichiers. Il y a deux phases dans cette procédure. Dans la première étape, nous allons construire un objet de système de fichiers ; ensuite, dans la deuxième étape, nous utiliserons la fonction DeleteFolder() pour détruire le dossier de l’objet associé.

Donc pour ce faire, créez d’abord un fichier test.ps1 puis ajoutez les commandes suivantes données ci-dessous.

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

Enfin, exécutez le fichier test.ps1, et il supprimera notre dossier prévu.

Utilisation de la classe .Net pour supprimer un dossier dans PowerShell

Dans PowerShell, la classe System.IO.Directory et la méthode Delete() sont utilisées par le framework .NET pour supprimer un dossier. Si le dossier fourni n’est pas vide, cette opération lèvera une exception :

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

Pour supprimer ce dossier non vide, utilisez l’option $true dans la fonction 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.

Article connexe - PowerShell Directory