Lorsque vous effectuez une opération basée sur un fichier dans un script PowerShell, il est très courant de vérifier si le fichier existe ou non à l’emplacement spécifié.
Si le fichier n’existe pas, une exception peut être levée dans le script lors de l’accès au fichier, de la suppression du fichier, de la lecture du fichier ou de toute autre opération basée sur le fichier.
Dans ce tutoriel, je vais vous expliquer comment vérifier si un fichier existe en PowerShell en utilisant différentes méthodes Test-Path, Get-Item, Get-ChildItem ou avec la méthode [System.IO.File]::Exists().
Table des matières
Comment tester l’existence fichier en PowerShell avec Test-Path
Le premier moyen est le cmdlet Test-Path, spécialement conçu pour déterminer si un chemin ou un fichier existe. Lorsque vous utilisez cette cmdlet pour tester l’existence d’un fichier, le résultat est vrai ou faux.
Le résultat indique si le fichier existe ou non.
Test-Path -Path <chemin du fichier> -PathType Leaf
Par exemple pour tester l’existence du fichier C:\Users\mak\Desktop\Monfichier.txt
Test-Path -Path C:\Users\mak\Desktop\Monfichier.txt -PathType Leaf
Ici la commande retourne False car le fichier n’existe pas.
On peut alors intégrer cette méthode dans un script PowerShell avec une condition if.
Cet exemple teste si le fichier existe, affiche un message lorsque c’est le cas et supprime à l’aide du cmdlet Remove-Item.
Sinon un message affiche que le fichier n’existe pas.
$FichierNom= "D:\docs\compatibilite.xlsx"
if (Test-Path $FichierNom) {
Write-Host "Le fichier existe"
#On peut alors supprimer le fichier
Remove-Item $FichierNom
}
else
{
Write-Host "Le fichier n'existe pas"
}
Comment tester l’existence fichier en PowerShell avec Get-Item
Le cmdlet Get-Item est utilisée pour obtenir un élément à un emplacement spécifié.
Vous pouvez utiliser le caractère générique (*) pour obtenir tout le contenu de l’élément.
Nous allons voir comment utiliser le cmdlet Get-Item pour vérifier si un fichier existe ou non.
L’utilisation de cette commande est simple puisqu’il suffit de spécifier le chemin complet du fichier à l’aide du paramètre -Path.
Get-Item -Path C:\Users\Mak\Desktop\Monfichier.txt
On peut alors utiliser la commande pour tester si un fichier existe en l’intégrant dans une condition if comme ceci.
Dans ce script PowerShell, on créé une variable $FichierNom avec un chemin de fichier.
Ensuite on utilise la condition if pour tester si le fichier existe.
Enfin on effectue les actions, par exemple en affichant un message d’information.
$FichierNom = "D:\docs\compatibilite.xlsx"
if(Get-Item -Path $FichierNom-ErrorAction Ignore)
{
Write-Host "Le fichier existe"
#On peut alors supprimer le fichier
Remove-Item $FichierNom
}
else
{
Write-Host "Le fichier n'existe pas"
}
Comment tester l’existence fichier en PowerShell avec Get-ChildItem
Le cmdlet PowerShell Get-ChildItem est utilisée pour obtenir des éléments ou des éléments enfants à partir d’un ou plusieurs emplacements spécifiés.
L’utilisation est exactement la même que précédemment pour vérifier si un fichier existe.
Vous pouvez spécifier un fichier à l’aide du paramètre -Path de Get-ChildItem.
Si le fichier n’existe pas, la commande renvoie une erreur :
Get-ChildItem : Impossible de trouver le chemin d'accès « C:\Users\Mak\Desktop\Monfichier.txt », car il n'existe pas.
Au caractère Ligne:1 : 1
Le script PowerShell pour vérifier l’existence d’un fichier est alors le même qu’avec le cmdlet Get-Item.
$FichierNom = "D:\docs\compatibilite.xlsx"
if(Get-ChildItem -Path $FichierNom -ErrorAction Ignore)
{
Write-Host "Le fichier existe"
#On peut alors supprimer le fichier
Remove-Item $FichierNom
}
else
{
Write-Host "Le fichier n'existe pas"
}
Comment tester l’existence fichier en PowerShell avec la méthode [System.IO.File]::Exists()
En utilisant la classe .Net System.IO.FIle et la méthode Exists(), nous pouvons vérifier si le fichier existe ou non avant d’effectuer toute opération.
Voyons comment utiliser la méthode [System.IO.File]::Exists() à l’aide d’un exemple.
Par exemple ci-dessous, ce script PowerShell teste l’existence du fichier spécificité dans la variable $FichierNom.
S’il existe, le fichier est supprimé, sinon il affiche un message indiquant que le fichier n’existe pas.
$FichierNom = "D:\docs\compatibilite.xlsx"
if([System.IO.File]::Exists($FichierNom))
{
Write-Host "Le fichier existe"
#On peut alors supprimer le fichier
Remove-Item $FichierNom
}
else
{
Write-Host "Le fichier n'existe pas"
}
Liens
- Qu’est-ce que PowerShell sur Windows 10, 11 : exemple de commandes
- PowerShell et CMD (invite de commandes) : les différences
- 14 commandes PowerShell de base pour apprendre et débuter
- La liste des commandes PowerShell
- Les virus ou trojan PowerShell
- Comment exécuter un script PowerShell
- PowerShell Get-Process : gestion des processus
- Exécution script désactivée PowerShell : Autoriser l’exécution de Scripts dans PowerShell
- Lancer PowerShell depuis CMD
- PowerShell : créer et écrire dans un fichier
- PowerShell : installer, désinstaller, lister les applications
- Comment utiliser Where-Object de PowerShell pour filtrer les éléments
- 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
- Configurer les tâches planifiées 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
- PowerShell : supprimer un fichier avec 10 exemples
- PowerShell : tester l’existence fichier
- PowerShell : rechercher une chaîne de caractères avec Select-String
- Comment mettre à jour PowerShell sur Windows