PowerShell est un shell puissant disponible dans Windows 10 et Windows 11 ainsi que les anciennes versions de Windows.
Vous pouvez parfois avoir besoin de manipuler les fichiers et notamment supprimer un fichier.
Pour cela, le cmdlet Remove-Item est disponible dans PowerShell pour supprimer un ou plusieurs éléments.
Il permet de supprimer des fichiers, des dossiers, des clés de registre, des variables, des alias et des fonctions.
Ce tutoriel vous explique comment supprimer des fichiers en utilisant la commande Powershell “Remove-Item”.
Comment supprimer un fichier en PowerShell
Supprimer un fichier
L’utilisation basique de la commande Remove-Item consiste à spécifier le nom du fichier du répertoire courant pour suppression.
Par exemple pour supprimer fichier.txt :
Remove-Item fichier.txt
Lorsque la commande ne retourne rien, la suppression a fonctionné.
Sinon vous pouvez avoir une erreur impossible de trouver le chemin d’accès, suppression impossible, accès refusé, ….
Une autre façon est de spécifier le chemin complet du fichier pour pouvoir supprimer un fichier dans un autre emplacement que le répertoire courant.
Par exemple pour supprimer fichier.txt présent dans le bureau de Windows :
Remove-Item C:\user\mak\Destktop\fichier.txt
Supprimer plusieurs fichiers
Vous pouvez avoir besoin de supprimer plusieurs fichiers à la fois en PowerShell.
Cela est possible en spécifiant le nom des fichiers en les séparant par une virgule.
Remove-Item C:\dir1\fichier1, C:\dir1\fichier2, C:\dir2\fichier3
Supprimer plusieurs fichiers avec le caractère joker
La commande Remove-item accepte également les caractères génériques, ce qui permet de supprimer des fichiers en masse.
Par exemple pour supprimer tous les fichiers avec l’extension txt :
Remove-Item *.txt
Exclure des fichiers lors de la suppression de fichiers
L’option -Exclude vous permet d’exclure des fichiers par leurs noms.
Il prend en charge les caractères joker.
Par exemple pour supprimer tous les fichiers avec l’extension du bureau mais en excluant ceux commençant par le mot fichier :
Remove-Item C:\Users\Mak\Desktop\*txt -Exclude "fichier*"
Supprimer les fichiers cachés, en lecture seule
Lorsque vous tentez de supprimer un fichier en lecture seule, vous pouvez rencontrer une erreur d’accès refusé :
Remove-Item : Impossible de supprimer l'élément C:\Users\Mak\Desktop\fichier.txt: Vous ne disposez pas des droits d’accès suffisants pour effectuer cette opération.
De même la suppression d’un fichier avec l’attribut caché peut ne pas fonctionner.
Pour résoudre cela, ajoutez l’option -Force comme ceci :
Remove-Item C:\Users\Mak\Desktop\*txt -Force
Suppression des fichiers contenant des caractères spéciaux
Quelques exemples de suppression de fichiers comportant des caractères spéciaux dans le nom de fichiers.
Par exemple avec un espace et des parenthèses, il est fortement conseillé d’entourer le nom de fichier par un apostrophe.
Remove-Item 'C:\Users\Mak\Desktop\fichier (2).txt'
Pour les noms de fichiers avec des crochets, vous devez placer le caractère ` avant le [ ou ].
Remove-Item 'C:\Users\Mak\Desktop\Fichier `[2`].txt'
Une autre façon de procéder est de liter les noms de fichiers à l’aide du cmdlet Get-ChildItem et de filtrer grâce à Where-Object.
Par exemple pour lister les noms de fichiers comportant un [ :
Get-ChildItem | Where-Object Name -Like '*`[*'
Enfin, on traite chaque entrée grâce à ForEach-Object pour exécuter la commande Remove-Item dessus.
Get-ChildItem | Where-Object Name -Like '*`[*' | ForEach-Object { Remove-Item -LiteralPath $_.Name }
Supprimer flux de données alternatif (ADS)
Les flux de données alternatifs (ADS) sont une fonctionnalité du système de fichiers NTFS qui permet aux fichiers de contenir des métadonnées supplémentaires pour localiser les fichiers par auteur et par titre.
Vous pouvez supprimer un ADS grâce à l’option -Stream :
Remove-Item C:\Test\Copy-Script.ps1 -Stream Zone.Identifier
Supprimer un dossier et son contenu
La commande Remove-Item fonctionne également pour la suppression de répertoires. Voici un exemple de commande pour la même chose.
Remove-Item C:\dossier
Si le répertoire contient des fichiers, la commande de base demande une confirmation, vous devez appuyer sur ‘O’ pour procéder à la suppression, ‘N’ pour l’abandonner.
Pour éviter la confirmation, vous pouvez utiliser l’argument ‘-recurse’ avec la cmdlet ‘Remove-Item’. Exemple ci-dessous.
Remove-Item -recurse C:\dossier
Suppression récursive des fichiers dans les sous-dossiers
Il est possible de supprimer tous les fichiers dans une arboresce complète en PowerShell grâce à Get-ChildItem.
Voici un exemple
Get-ChildItem * -Include *.txt -Recurse | Remove-Item
Dans la commande Get-ChildItem, Path a la valeur (*), qui représente le contenu du dossier actuel. Elle 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 exemple -Path *.csv, le cmdlet interprète l’objet de la recherche comme étant un fichier qui n’a pas d’éléments enfants, et Recurse échoue.
Forcer la suppression d’un fichier
Il peut arriver qu’un fichier ne puisse être supprimé car verrouillé.
Ce script permet d’arrêter tous les processus qui ouvre un fichier par son nom pour ensuite tenter de supprimer le dit fichier.
Indiquer le nom du fichier dans la variable $lockedFile.
$allProcesses = Get-Process
$lockedFile = "fichier.txt"
foreach ($process in $allProcesses) {
$process.Modules | where {$_.FileName -eq $lockedFile} | Stop-Process -Force -ErrorAction SilentlyContinue
}
Remove-Item $lockedFile
Liens
- Qu’est-ce que Powershell sur Windows 10, 11 : exemple de commandes
- Powershell et CMD (invite de commandes) : les différences
- Les virus ou trojan Powershell
- Créer, supprimer, formater des partitions de disque en Powershell
- Ajouter, supprimer et modifier des comptes utilisateurs et des groupes locaux avec PowerShell
- Comment créer une tâche planifiée en PowerShell
- Comment gérer Windows Defender avec Powershell
- Comment copier ou déplacer des fichiers avec PowerShell
- PowerShell : gérer les partages réseaux et de dossiers de Windows 10
- Les commandes réseaux Powershell sur Windows 10, 11
- Gérer les services Windows en Powershell
- Configurer les tâches planifiées en PowerShell
- Comment créer une tâche planifiée en PowerShell
- Powershell : supprimer un fichier avec 10 exemples
L’article Powershell : supprimer un fichier avec 10 exemples est apparu en premier sur malekal.com.
0 Commentaires