Comment obtenir l'extension de fichier à l'aide de PowerShell
-
Obtenez l’extension du fichier en utilisant
Split-Path
dans PowerShell -
Obtenez l’extension du fichier en utilisant la cmdlet
Get-ChildItem
dans PowerShell -
Obtenez l’extension du fichier en utilisant
System.IO.Path
dans PowerShell -
Obtenez l’extension du fichier en utilisant
System.IO.FileInfo
dans PowerShell - Conclusion

Il est généralement nécessaire d’extraire un nom de fichier à partir du chemin complet lors de l’élaboration de vos scripts PowerShell. Par exemple, votre script a reçu un chemin de fichier complet, et vous souhaitez seulement obtenir l’extension du fichier.
Ce guide complet examine diverses méthodologies pour extraire les extensions de fichiers à l’aide de PowerShell, une tâche fondamentale mais essentielle dans de nombreux scénarios de script. Chaque section de l’article présente une approche différente, allant de la simplicité de Split-Path
à l’utilisation plus sophistiquée du framework .NET
et de la classe System.IO.FileInfo
.
Obtenez l’extension du fichier en utilisant Split-Path
dans PowerShell
L’objectif principal de l’utilisation de Split-Path -Leaf
dans ce contexte est d’isoler le nom de fichier et son extension à partir d’un chemin donné. Cette méthode est particulièrement efficace lorsque vous travaillez uniquement avec le nom de fichier ou un chemin relatif.
Une fois le nom de fichier obtenu, l’extension peut être facilement extraite à l’aide de méthodes de séparation de chaînes.
Code Exemple :
powershellCopy# Define the file path
$filePath = "sample.txt"
# Extract the file extension
$extension = (Split-Path -Path $filePath -Leaf).Split(".")[1]
# Output the extension
Write-Output $extension
Dans ce script, nous commençons par définir un nom de fichier $filePath
. La commande Split-Path -Path $filePath -Leaf
isole le nom de fichier (sample.txt
).
Nous divisons ensuite cette chaîne au niveau du point, ce qui donne un tableau où le premier élément est le nom de fichier sans l’extension (sample
), et le deuxième élément est l’extension (txt
). En accédant au deuxième élément de ce tableau avec [1]
, nous obtenons l’extension.
Enfin, Write-Output
est utilisé pour afficher l’extension.
Sortie :
Obtenez l’extension du fichier en utilisant la cmdlet Get-ChildItem
dans PowerShell
La commande Get-ChildItem
récupère les éléments dans un ou plusieurs emplacements spécifiés. Par exemple, si l’objet est un conteneur, il obtient les éléments à l’intérieur du dit conteneur, connus sous le nom d’éléments enfants.
Un emplacement peut être un système de fichiers, tel qu’un répertoire, ou un site exposé par un fournisseur Windows PowerShell différent. La commande Get-ChildItem
obtient les répertoires, sous-répertoires et fichiers dans un lecteur de système de fichiers.
Puisque la cmdlet Get-ChildItem
traite des fichiers, elle possède un attribut de propriété PowerShell que nous pouvons exporter pour obtenir l’extension du fichier interrogé. Contrairement à la cmdlet Split-Path
, cette méthode peut expédier correctement l’extension même s’il y a des caractères de point dans le nom de fichier.
Code Exemple :
powershellCopyGet-ChildItem 'sample.txt' | Select-Object Extension
Dans ce script, Get-ChildItem 'sample.txt'
récupère l’objet fichier pour sample.txt
. La cmdlet Get-ChildItem
est généralement utilisée pour lister les éléments d’un répertoire, mais lorsqu’on lui fournit un nom de fichier spécifique, elle renvoie l’objet fichier pour ce fichier.
Cet objet inclut diverses propriétés, dont l’une est l’extension du fichier.
La sortie de Get-ChildItem
est ensuite redirigée vers Select-Object Extension
. Cette cmdlet filtre les propriétés de l’objet fichier, ne sortant que la propriété Extension
.
Sortie :
Obtenez l’extension du fichier en utilisant System.IO.Path
dans PowerShell
L’approche suivante est basée sur les classes du framework .NET
. Bien qu’il soit généralement déconseillé d’utiliser des classes du framework .NET
dans des scripts PowerShell, surtout si une commande PowerShell native est disponible, cela peut être approprié pour ce cas d’utilisation spécifique.
Dans l’exemple ci-dessous, si vous avez le nom de fichier, nous utiliserions les méthodes statiques GetExtension
de la classe System.IO.Path
:
Code Exemple :
powershellCopy[System.IO.Path]::GetExtension("sample.txt")
Dans l’exemple fourni, la classe .NET
[System.IO.Path]
est utilisée, et sa méthode statique GetExtension()
est appelée. Nous passons "sample.txt"
comme argument à la méthode.
Cette méthode analyse la chaîne et extrait la sous-chaîne qui représente l’extension du fichier. La beauté de cette méthode réside dans sa simplicité et son approche directe pour gérer les noms de fichiers et les chemins, car elle ne nécessite pas que le fichier existe sur le système de fichiers.
Sortie :
Obtenez l’extension du fichier en utilisant System.IO.FileInfo
dans PowerShell
L’utilisation principale de System.IO.FileInfo
dans ce contexte est d’obtenir des informations détaillées sur un fichier spécifique, telles que son extension. Cette méthode est particulièrement utile dans les scripts où les métadonnées des fichiers sont cruciales et où il y a besoin de plus qu’une simple manipulation de fichiers.
Code Exemple :
powershellCopy# Create a FileInfo object for the specified file
$FileInfo = New-Object System.IO.FileInfo('sample.txt')
# Access the extension property of the FileInfo object
$Extension = $FileInfo.Extension
# Print the extension
Write-Output $Extension
Dans ce script, nous commençons le processus en créant un objet System.IO.FileInfo
pour sample.txt
. Cet objet encapsule divers détails sur le fichier, y compris son nom, son répertoire, sa taille et, surtout, son extension.
En accédant à la propriété .Extension
de l’objet FileInfo
, nous extrayons l’extension du fichier. Cette propriété renvoie l’extension sous forme de chaîne, complète avec le point de début (par exemple, .txt
).
Sortie :
Conclusion
Naviguer à travers les subtilités des extensions de fichiers dans PowerShell révèle un spectre de techniques, chacune avec ses avantages et applications uniques. Cette exploration nous a amenés de l’utilisation simple de Split-Path
et Get-ChildItem
, idéales pour des récupérations simples et rapides, aux domaines plus profonds du framework .NET
avec System.IO.Path
et System.IO.FileInfo
, où un équilibre entre complexité et capacité est élégamment atteint.
Que vous automatisiez une tâche de routine, effectuiez des opérations de fichiers en masse ou développiez des scripts sophistiqués pour la gestion de système, comprendre ces méthodes enrichit votre boîte à outils PowerShell. Les diverses approches discutées ici soulignent l’adaptabilité et la robustesse de PowerShell, permettant aussi bien aux scripteurs novices qu’expérimentés d’adapter leurs solutions avec précision et efficacité.
Marion specializes in anything Microsoft-related and always tries to work and apply code in an IT infrastructure.
LinkedInArticle connexe - PowerShell File
- Comment créer un fichier texte en utilisant Windows PowerShell
- Comment débloquer des fichiers en utilisant PowerShell
- Comment obtenir la taille d'un fichier en Ko en utilisant PowerShell
- Comment obtenir la version du fichier dans PowerShell
- Comment stocker le contenu d'un fichier texte dans une variable en utilisant PowerShell
- Comment télécharger des fichiers avec FTP dans PowerShell