Comment obtenir l'extension de fichier à l'aide de PowerShell

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

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 :

obtenir l’extension de fichier en utilisant powershell - sortie 1

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 :

obtenir l’extension de fichier en utilisant powershell - sortie 2

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 :

obtenir l’extension de fichier en utilisant powershell - sortie 3

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 :

obtenir l’extension de fichier en utilisant PowerShell - sortie 4

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é.

Vous aimez nos tutoriels ? Abonnez-vous à DelftStack sur YouTube pour nous aider à créer davantage de tutoriels vidéo de haute qualité. Abonnez-vous
Marion Paul Kenneth Mendoza avatar Marion Paul Kenneth Mendoza avatar

Marion specializes in anything Microsoft-related and always tries to work and apply code in an IT infrastructure.

LinkedIn

Article connexe - PowerShell File