Obtenir l'extension de fichier à l'aide de PowerShell

Marion Paul Kenneth Mendoza 30 janvier 2023
  1. Obtenir l’extension de fichier à l’aide de Split-Path dans PowerShell
  2. Obtenir l’extension de fichier à l’aide de la cmdlet Get-ChildItem dans PowerShell
  3. Obtenir l’extension de fichier à l’aide de .NET Framework dans PowerShell
Obtenir l'extension de fichier à l'aide de PowerShell

Il est généralement nécessaire d’avoir un nom de fichier extrait du chemin complet lorsque vous travaillez sur vos scripts PowerShell. Par exemple, votre script a reçu un chemin de fichier complet et vous souhaitez uniquement obtenir l’extension de fichier.

Cet article traite de plusieurs méthodes d’extension de fichier à l’aide de scripts PowerShell.

Obtenir l’extension de fichier à l’aide de Split-Path dans PowerShell

Pour séparer l’extension du nom de fichier, nous pouvons utiliser le paramètre -Leaf pour indiquer où nous allons extraire l’extension. La feuille est le dernier élément ou une partie d’un chemin.

$filePath = "C:\temp\subfolder\File1.txt";
$extension = (Split-Path -Path $filePath -Leaf).Split(".")[1];
Write-Output $extension

Production:

txt

Vous remarquerez peut-être que dans notre extrait de code, nous avons appelé la fonction Split() qui divisera le chemin fourni.

Nous avons utilisé le point . comme séparateur car le nom de fichier et l’extension sont séparés par un séparateur de points. Nous avons alors appelé le tableau [1] la valeur d’extension stockée.

Essayez d’appeler le tableau [0], et vous obtiendrez le nom de fichier du chemin.

Exemple de code :

(Split-Path -Path $filePath -Leaf).Split(".")[0];

Production:

File1

Puisque nous utilisons le caractère point comme séparateur, cette méthode ne fonctionnera que si vos noms de fichiers ne contiennent aucun autre point. N’oubliez pas qu’un point peut figurer dans un nom de fichier.

Obtenir l’extension de fichier à l’aide de 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 choses à l’intérieur dudit conteneur, appelées éléments enfants.

Un emplacement peut être un système de fichiers, tel qu’un répertoire, ou un site exposé par un autre fournisseur Windows PowerShell. La commande Get-ChildItem obtient les répertoires, sous-répertoires et fichiers dans un lecteur de système de fichiers.

Étant donné que l’applet de commande 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 à l’applet de commande Split-Path, cette méthode peut expédier l’extension correctement même s’il y a des points dans le nom de fichier.

Exemple de code :

Get-ChildItem 'C:\temp\file.1.txt' | Select Extension

Production:

Extension
---------
.txt

Obtenir l’extension de fichier à l’aide de .NET Framework 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 de framework .NET sur des scripts PowerShell, en particulier si une commande PowerShell native est disponible, cela peut être approprié pour ce cas d’utilisation spécifique.

Dans l’exemple ci-dessous, si on vous donne le nom du fichier, nous utiliserons les méthodes statiques GetExtension de la classe System.IO.Path :

Exemple de code :

[System.IO.Path]::GetExtension("File1.txt")

Production:

.txt

Nous pouvons également utiliser la méthode statique GetFileNameWithoutExtension à la place si nous voulons obtenir le nom du fichier.

Exemple de code :

[System.IO.Path]::GetFileNameWithoutExtension("File1.txt")

Production:

File1
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