Partager via


Remove-Item

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

Syntaxe

Path (Default) - FileSystem provider

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

LiteralPath - FileSystem provider

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

Path (Default) - Certificate provider

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

LiteralPath - Certificate provider

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

Path (Default) - All providers

Remove-Item
    [-Path] <string[]>
    [-Filter <string>]
    [-Include <string[]>]
    [-Exclude <string[]>]
    [-Recurse]
    [-Force]
    [-Credential <pscredential>]
    [-WhatIf]
    [-Confirm]
    [-UseTransaction]
    [<CommonParameters>]

LiteralPath - All providers

Remove-Item
    -LiteralPath <string[]>
    [-Filter <string>]
    [-Include <string[]>]
    [-Exclude <string[]>]
    [-Recurse]
    [-Force]
    [-Credential <pscredential>]
    [-WhatIf]
    [-Confirm]
    [-UseTransaction]
    [<CommonParameters>]

Description

L’applet de commande Remove-Item 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 les fichiers, dossiers, clés de Registre, variables, alias et fonctions.

Exemples

Exemple 1 : Supprimer des fichiers qui ont n’importe quelle extension de fichier

Cet exemple supprime tous les fichiers avec des noms qui incluent un point (.) dans le dossier C:\Test. Étant donné que la commande spécifie un point, la commande ne supprime pas les dossiers ou les fichiers qui n’ont aucune 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 extension de fichier .doc et un nom qui n’inclut pas *1*.

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 Exclure pour spécifier les fichiers à supprimer.

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

Cette commande supprime un fichier qui est à la fois caché 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 cachés.

Exemple 4 : Supprimer des fichiers dans les 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 a 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 commande Get-ChildItem, Chemin d’accès a la valeur (*), qui représente le contenu du dossier actif. Il utilise Include pour spécifier le type de fichier CSV et utilise 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 exemple -Path *.csv, l’applet de commande interprète l’objet de la recherche comme un fichier qui n’a aucun élément enfant et récurser.

Remarque

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

Exemple 5 : Supprimer les 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 Récurser, 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 de commande Remove-Item pour supprimer un autre flux de données. Le paramètre de flux 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'.
At line:1 char:1
+ Get-Item 'C:\Test\Copy-Script.ps1' -Stream Zone.Identifier
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : ObjectNotFound: (C:\Test\Copy-Script.ps1:String) [Get-Item], FileNotFoundException
    + FullyQualifiedErrorId : AlternateDataStreamNotFound,Microsoft.PowerShell.Commands.GetItemCommand

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

Paramètres

-Confirm

Vous invite à confirmer avant d’exécuter l’applet de commande. Pour plus d’informations, consultez les articles suivants :

Propriétés du paramètre

Type:SwitchParameter
Valeur par défaut:False
Prend en charge les caractères génériques:False
DontShow:False
Alias:cf

Jeux de paramètres

(All)
Position:Named
Obligatoire:False
Valeur du pipeline:False
Valeur du pipeline par nom de propriété:False
Valeur des arguments restants:False

-Credential

Remarque

Ce paramètre n’est pas pris en charge par les fournisseurs installés 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.

Propriétés du paramètre

Type:PSCredential
Valeur par défaut:Current user
Prend en charge les caractères génériques:False
DontShow:False

Jeux de paramètres

(All)
Position:Named
Obligatoire:False
Valeur du pipeline:False
Valeur du pipeline par nom de propriété:True
Valeur des arguments restants:False

-DeleteKey

Il s’agit d’un paramètre dynamique mis à disposition par le fournisseur de certificat . Le fournisseur certificat 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, veuillez consulter la section à propos du fournisseur de certificat.

Propriétés du paramètre

Type:SwitchParameter
Valeur par défaut:False
Prend en charge les caractères génériques:False
DontShow:False

Jeux de paramètres

(All)
Position:Named
Obligatoire:False
Valeur du pipeline:False
Valeur du pipeline par nom de propriété:False
Valeur des arguments restants:False

-Exclude

Spécifie, en tant que tableau de chaînes, un élément ou des é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 de chemin ou un modèle, tel que *.txt. Les caractères génériques sont autorisés. Le paramètre Exclure 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 répertoire C:\Windows.

Lorsque vous utilisez Recurse avec Exclude, Exclude ne filtre que les résultats du répertoire actuel. 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.

Propriétés du paramètre

Type:

String[]

Valeur par défaut:None
Prend en charge les caractères génériques:True
DontShow:False

Jeux de paramètres

(All)
Position:Named
Obligatoire:False
Valeur du pipeline:False
Valeur du pipeline par nom de propriété:False
Valeur des arguments restants:False

-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 pouvez trouver 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 plutôt que d’avoir PowerShell filtrer les objets après leur récupération.

Propriétés du paramètre

Type:String
Valeur par défaut:None
Prend en charge les caractères génériques:True
DontShow:False

Jeux de paramètres

(All)
Position:Named
Obligatoire:False
Valeur du pipeline:False
Valeur du pipeline par nom de propriété:False
Valeur des arguments restants:False

-Force

Force l’applet de commande à supprimer les éléments qui ne peuvent pas être modifiés autrement, tels que les fichiers masqués ou en lecture seule ou les alias ou variables en lecture seule. L’applet de commande ne peut pas supprimer d’alias de constantes ou de variables. L’implémentation varie du fournisseur au fournisseur. Pour plus d’informations, voir about_Providers. Même en utilisant le paramètre Force, le cmdlet ne peut pas remplacer les restrictions de sécurité.

Propriétés du paramètre

Type:SwitchParameter
Valeur par défaut:False
Prend en charge les caractères génériques:False
DontShow:False

Jeux de paramètres

(All)
Position:Named
Obligatoire:False
Valeur du pipeline:False
Valeur du pipeline par nom de propriété:False
Valeur des arguments restants:False

-Include

Spécifie, sous la forme d’un tableau de chaînes, un élément ou des éléments inclus dans l’opération. La valeur de ce paramètre qualifie le paramètre Path. Entrez un élément de chemin ou un modèle, tel que "*.txt". Les caractères génériques sont autorisés. Le paramètre Include n’est effectif que 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 répertoire C:\Windows.

Propriétés du paramètre

Type:

String[]

Valeur par défaut:None
Prend en charge les caractères génériques:True
DontShow:False

Jeux de paramètres

(All)
Position:Named
Obligatoire:False
Valeur du pipeline:False
Valeur du pipeline par nom de propriété:False
Valeur des arguments restants:False

-LiteralPath

Spécifie un chemin d’accès à un ou plusieurs emplacements. La valeur de LiteralPath est utilisée exactement comme elle est typé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 séquences d’échappement.

Pour plus d'informations, consultez la section sur les règles de citation.

Propriétés du paramètre

Type:

String[]

Valeur par défaut:None
Prend en charge les caractères génériques:False
DontShow:False
Alias:PSPath

Jeux de paramètres

LiteralPath
Position:Named
Obligatoire:True
Valeur du pipeline:False
Valeur du pipeline par nom de propriété:True
Valeur des arguments restants: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.

Propriétés du paramètre

Type:

String[]

Valeur par défaut:None
Prend en charge les caractères génériques:True
DontShow:False

Jeux de paramètres

Path
Position:0
Obligatoire:True
Valeur du pipeline:True
Valeur du pipeline par nom de propriété:True
Valeur des arguments restants:False

-Recurse

Indique que cette cmdlet supprime les éléments dans les emplacements spécifiés et dans tous les éléments enfants de ces 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.

Remarque

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

Propriétés du paramètre

Type:SwitchParameter
Valeur par défaut:None
Prend en charge les caractères génériques:False
DontShow:False

Jeux de paramètres

(All)
Position:Named
Obligatoire:False
Valeur du pipeline:False
Valeur du pipeline par nom de propriété:False
Valeur des arguments restants:False

-Stream

Il s’agit d’un paramètre dynamique mis à disposition par le fournisseur FileSystem. Ce paramètre est disponible uniquement 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 commande Unblock-File.

Ce paramètre a été introduit dans Windows PowerShell 3.0.

Pour plus d’informations, consultez about_FileSystem_Provider.

Propriétés du paramètre

Type:

String[]

Valeur par défaut:None
Prend en charge les caractères génériques:True
DontShow:False

Jeux de paramètres

(All)
Position:Named
Obligatoire:False
Valeur du pipeline:False
Valeur du pipeline par nom de propriété:False
Valeur des arguments restants:False

-UseTransaction

Inclut la commande dans la transaction active. Ce paramètre est valide uniquement lorsqu’une transaction est en cours. Pour plus d’informations, consultez about_Transactions

Propriétés du paramètre

Type:SwitchParameter
Valeur par défaut:False
Prend en charge les caractères génériques:False
DontShow:False
Alias:usetx

Jeux de paramètres

(All)
Position:Named
Obligatoire:False
Valeur du pipeline:False
Valeur du pipeline par nom de propriété:False
Valeur des arguments restants:False

-WhatIf

Affiche ce qui se passerait si l’applet de commande s’exécute. L’applet de commande n’est pas exécutée.

Propriétés du paramètre

Type:SwitchParameter
Valeur par défaut:False
Prend en charge les caractères génériques:False
DontShow:False
Alias:Wi

Jeux de paramètres

(All)
Position:Named
Obligatoire:False
Valeur du pipeline:False
Valeur du pipeline par nom de propriété:False
Valeur des arguments restants:False

CommonParameters

Cette applet de commande prend en charge les paramètres courants : -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction et -WarningVariable. Pour plus d’informations, consultez about_CommonParameters.

Entrées

String

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

Sorties

None

Cette applet de commande ne retourne aucune sortie.

Notes

Windows PowerShell inclut les alias suivants pour Remove-Item:

  • del
  • erase
  • rd
  • ri
  • rm
  • rmdir

L’applet de commande Remove-Item 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, voir 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 de -Confirm:$false ne supprime pas la requête. C'est intentionnel.