Partager via


Remove-Item

Supprime les éléments spécifiés.

Syntax

Remove-Item
      [-Path] <String[]>
      [-Filter <String>]
      [-Include <String[]>]
      [-Exclude <String[]>]
      [-Recurse]
      [-Force]
      [-Credential <PSCredential>]
      [-WhatIf]
      [-Confirm]
      [-Stream <String[]>]
      [<CommonParameters>]
Remove-Item
      -LiteralPath <String[]>
      [-Filter <String>]
      [-Include <String[]>]
      [-Exclude <String[]>]
      [-Recurse]
      [-Force]
      [-Credential <PSCredential>]
      [-WhatIf]
      [-Confirm]
      [-Stream <String[]>]
      [<CommonParameters>]
Remove-Item
      [-Path] <String[]>
      [-Filter <String>]
      [-Include <String[]>]
      [-Exclude <String[]>]
      [-Recurse]
      [-Force]
      [-Credential <PSCredential>]
      [-WhatIf]
      [-Confirm]
      [-DeleteKey]
      [<CommonParameters>]
Remove-Item
      -LiteralPath <String[]>
      [-Filter <String>]
      [-Include <String[]>]
      [-Exclude <String[]>]
      [-Recurse]
      [-Force]
      [-Credential <PSCredential>]
      [-WhatIf]
      [-Confirm]
      [-DeleteKey]
      [<CommonParameters>]
Remove-Item
      [-Path] <string[]>
      [-Filter <string>]
      [-Include <string[]>]
      [-Exclude <string[]>]
      [-Recurse]
      [-Force]
      [-Credential <pscredential>]
      [-WhatIf]
      [-Confirm]
      [<CommonParameters>]
Remove-Item
      -LiteralPath <string[]>
      [-Filter <string>]
      [-Include <string[]>]
      [-Exclude <string[]>]
      [-Recurse]
      [-Force]
      [-Credential <pscredential>]
      [-WhatIf]
      [-Confirm]
      [<CommonParameters>]

Description

L’applet Remove-Item de commande supprime un ou plusieurs éléments. Étant donné qu’il est pris en charge par de nombreux fournisseurs, il peut supprimer de nombreux types d’éléments différents, notamment des fichiers, des dossiers, des clés de Registre, des variables, des alias et des fonctions.

Exemples

Exemple 1 : Supprimer les fichiers qui ont une extension de fichier

Cet exemple supprime tous les fichiers dont le nom inclut un point (.) du C:\Test dossier. Étant donné que la commande spécifie un point, elle ne supprime pas les dossiers ou fichiers qui n’ont pas d’extension de fichier.

Remove-Item C:\Test\*.*

Exemple 2 : Supprimer des fichiers de document dans un dossier

Cet exemple supprime du dossier actif tous les fichiers qui ont une .doc extension de fichier et un nom qui n’inclut *1*pas .

Remove-Item * -Include *.doc -Exclude *1*

Il utilise le caractère générique (*) pour spécifier le contenu du dossier actif. Il utilise les paramètres Include et Exclude pour spécifier les fichiers à supprimer.

Exemple 3 : Supprimer les fichiers masqués en lecture seule

Cette commande supprime un fichier à la fois masqué et en lecture seule.

Remove-Item -Path C:\Test\hidden-RO-file.txt -Force

Il utilise le paramètre Path pour spécifier le fichier. Il utilise le paramètre Force pour le supprimer. Sans Force, vous ne pouvez pas supprimer les fichiers en lecture seule ou masqués .

Exemple 4 : Supprimer des fichiers dans des sous-dossiers de manière récursive

Cette commande supprime tous les fichiers CSV du dossier actif et tous les sous-dossiers de manière récursive.

Étant donné que le paramètre Recurse dans Remove-Item présente un problème connu, la commande de cet exemple utilise Get-ChildItem pour obtenir les fichiers souhaités, puis utilise l’opérateur de pipeline pour les transmettre à Remove-Item.

Get-ChildItem * -Include *.csv -Recurse | Remove-Item

Dans la Get-ChildItem commande, Path a la valeur (*), qui représente le contenu du dossier actif. Il utilise Include pour spécifier le type de fichier CSV et recurse pour rendre la récupération récursive. Si vous essayez de spécifier le type de fichier dans le chemin d’accès, par -Path *.csvexemple , l’applet de commande interprète l’objet de la recherche comme un fichier qui ne contient aucun élément enfant, et Recurse échoue.

Notes

Ce comportement a été résolu dans Windows versions 1909 et ultérieures.

Exemple 5 : Supprimer des sous-clés de manière récursive

Cette commande supprime la clé de Registre « OldApp » et toutes ses sous-clés et valeurs. Il utilise Remove-Item pour supprimer la clé. Le chemin d’accès est spécifié, mais le nom de paramètre facultatif (Path) est omis.

Le paramètre Recurse supprime tout le contenu de la clé « OldApp » de manière récursive. Si la clé contient des sous-clés et que vous omettez le paramètre Recurse , vous êtes invité à confirmer que vous souhaitez supprimer le contenu de la clé.

Remove-Item HKLM:\Software\MyCompany\OldApp -Recurse

Exemple 6 : suppression de fichiers avec des caractères spéciaux

L’exemple suivant montre comment supprimer des fichiers qui contiennent des caractères spéciaux tels que des crochets ou des parenthèses.

Get-ChildItem

Directory: C:\temp\Downloads

Mode                LastWriteTime         Length Name
----                -------------         ------ ----
-a---          6/1/2018  12:19 PM           1362 myFile.txt
-a---          6/1/2018  12:30 PM           1132 myFile[1].txt
-a---          6/1/2018  12:19 PM           1283 myFile[2].txt
-a---          6/1/2018  12:19 PM           1432 myFile[3].txt

Get-ChildItem | Where-Object Name -Like '*`[*'

Directory: C:\temp\Downloads

Mode                LastWriteTime         Length Name
----                -------------         ------ ----
-a---          6/1/2018  12:30 PM           1132 myFile[1].txt
-a---          6/1/2018  12:19 PM           1283 myFile[2].txt
-a---          6/1/2018  12:19 PM           1432 myFile[3].txt

Get-ChildItem | Where-Object Name -Like '*`[*' | ForEach-Object { Remove-Item -LiteralPath $_.Name }
Get-ChildItem

Directory: C:\temp\Downloads

Mode                LastWriteTime         Length Name
----                -------------         ------ ----
-a---          6/1/2018  12:19 PM           1362 myFile.txt

Exemple 7 : Supprimer un autre flux de données

Cet exemple montre comment utiliser le paramètre dynamique Stream de l’applet Remove-Item de commande pour supprimer un autre flux de données. Le paramètre stream est introduit dans Windows PowerShell 3.0.

Get-Item C:\Test\Copy-Script.ps1 -Stream Zone.Identifier

FileName: \\C:\Test\Copy-Script.ps1

Stream                   Length
------                   ------
Zone.Identifier              26

Remove-Item C:\Test\Copy-Script.ps1 -Stream Zone.Identifier
Get-Item C:\Test\Copy-Script.ps1 -Stream Zone.Identifier

Get-Item : Could not open alternate data stream 'Zone.Identifier' of file 'C:\Test\Copy-Script.ps1'.

Le paramètre Get-ItemStream obtient le Zone.Identifier flux du Copy-Script.ps1 fichier. Remove-Itemutilise le paramètre Stream pour supprimer le Zone.Identifier flux du fichier. Enfin, l’applet de Get-Item commande indique que le Zone.Identifier flux a été supprimé.

Paramètres

-Confirm

Vous demande une confirmation avant d’exécuter l’applet de commande. Pour plus d’informations, consultez les articles suivants :

Type:SwitchParameter
Aliases:cf
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Credential

Notes

Ce paramètre n’est pris en charge par aucun fournisseur installé avec PowerShell. Pour emprunter l’identité d’un autre utilisateur ou élever vos informations d’identification lors de l’exécution de cette applet de commande, utilisez Invoke-Command.

Type:PSCredential
Position:Named
Default value:Current user
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-DeleteKey

Il s’agit d’un paramètre dynamique mis à disposition par le fournisseur de certificats . Le fournisseur de certificats et ce paramètre sont disponibles uniquement sur les plateformes Windows.

Lorsqu’elle est fournie, l’applet de commande supprime la clé privée lorsque le certificat est supprimé.

Pour plus d’informations, consultez about_Certificate_Provider.

Type:SwitchParameter
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Exclude

Spécifie, en tant que tableau de chaînes, un ou plusieurs éléments que cette applet de commande exclut dans l’opération. La valeur de ce paramètre qualifie le paramètre Path. Entrez un élément ou un modèle de chemin d’accès, tel que *.txt. Les caractères génériques sont autorisés. Le paramètre Exclude est effectif uniquement lorsque la commande inclut le contenu d’un élément, tel que C:\Windows\*, où le caractère générique spécifie le contenu du C:\Windows répertoire.

Lors de l’utilisation de Recurse avec Exclude, l’option Exclure filtre uniquement les résultats du répertoire actif. S’il existe des fichiers qui correspondent au modèle Exclure dans les sous-dossiers, ces fichiers sont supprimés avec son répertoire parent.

Type:String[]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:True

-Filter

Spécifie un filtre pour qualifier le paramètre Path . Le fournisseur FileSystem est le seul fournisseur PowerShell installé qui prend en charge l’utilisation de filtres. Vous trouverez la syntaxe du langage de filtre FileSystem dans about_Wildcards. Les filtres sont plus efficaces que d’autres paramètres, car le fournisseur les applique lorsque l’applet de commande obtient les objets au lieu de laisser PowerShell filtrer les objets après leur récupération.

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:True

-Force

Force l’applet de commande à supprimer les éléments qui ne peuvent pas autrement être modifiés, tels que des fichiers masqués ou en lecture seule ou des alias ou des variables en lecture seule. L’applet de commande ne peut pas supprimer les alias de constante ou les variables. L'implémentation est différente d'un fournisseur à l'autre. Pour plus d'informations, consultez about_Providers. Même à l’aide du paramètre Force , l’applet de commande ne peut pas remplacer les restrictions de sécurité.

Type:SwitchParameter
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Include

Spécifie, en tant que tableau de chaînes, un ou plusieurs éléments que cette applet de commande inclut dans l’opération. La valeur de ce paramètre qualifie le paramètre Path. Entrez un élément ou un modèle de chemin d’accès, tel que "*.txt". Les caractères génériques sont autorisés. Le paramètre Include est efficace uniquement lorsque la commande inclut le contenu d’un élément, tel que C:\Windows\*, où le caractère générique spécifie le contenu du C:\Windows répertoire.

Type:String[]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:True

-LiteralPath

Spécifie un chemin d’accès à un ou plusieurs emplacements. La valeur de LiteralPath est utilisée exactement telle qu’elle est tapée. Aucun caractère n’est interprété en tant que caractère générique. Si le chemin d’accès inclut des caractères d’échappement, mettez-le entre des guillemets simples. Les guillemets simples indiquent à PowerShell de ne pas interpréter de caractères comme des séquences d’échappement.

Pour plus d’informations, consultez about_Quoting_Rules.

Type:String[]
Aliases:PSPath, LP
Position:Named
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-Path

Spécifie un chemin d’accès des éléments en cours de suppression. Les caractères génériques sont autorisés.

Type:String[]
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:True

-Recurse

Indique que cette applet de commande supprime les éléments dans les emplacements spécifiés et dans tous les éléments enfants des emplacements.

Le paramètre Recurse peut ne pas supprimer tous les sous-dossiers ou tous les éléments enfants. Il s'agit d'un problème connu.

Notes

Ce comportement a été résolu dans Windows versions 1909 et ultérieures.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Stream

Il s’agit d’un paramètre dynamique mis à disposition par le fournisseur FileSystem . Ce paramètre n’est disponible que sur Windows. Ce paramètre ne peut pas être utilisé en combinaison avec le paramètre Recurse .

Vous pouvez utiliser Remove-Item pour supprimer un autre flux de données, tel que Zone.Identifier. Toutefois, il n’est pas recommandé d’éliminer les contrôles de sécurité qui bloquent les fichiers téléchargés à partir d’Internet. Si vous vérifiez qu’un fichier téléchargé est sécurisé, utilisez l’applet de Unblock-File commande.

Ce paramètre a été introduit dans Windows PowerShell 3.0. À partir de Windows PowerShell 7.2, Remove-Item peut supprimer d’autres flux de données des répertoires et des fichiers.

Pour plus d’informations, consultez about_FileSystem_Provider.

Type:String[]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:True

-WhatIf

Montre ce qui se passe en cas d’exécution de l’applet de commande. L’applet de commande n’est pas exécutée.

Type:SwitchParameter
Aliases:wi
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

Entrées

String

Vous pouvez diriger une chaîne qui contient un chemin, mais pas un chemin littéral, vers cette applet de commande.

Sorties

None

Cette applet de commande ne retourne pas de sortie.

Notes

PowerShell inclut les alias suivants pour Remove-Item:

  • Toutes les plateformes :
    • del
    • erase
    • rd
    • ri
  • Windows :
    • rm
    • rmdir

L’applet Remove-Item de commande est conçue pour fonctionner avec les données exposées par n’importe quel fournisseur. Pour répertorier les fournisseurs disponibles dans votre session, tapez Get-PsProvider. Pour plus d'informations, consultez about_Providers.

Lorsque vous essayez de supprimer un dossier qui contient des éléments sans utiliser le paramètre Recurse , l’applet de commande vous invite à confirmer. L’utilisation -Confirm:$false de ne supprime pas l’invite. C'est la procédure normale.