Obtenir l'extension de fichier à l'aide de PowerShell
-
Obtenir l’extension de fichier à l’aide de
Split-Path
dans PowerShell -
Obtenir l’extension de fichier à l’aide de la cmdlet
Get-ChildItem
dans PowerShell -
Obtenir l’extension de fichier à l’aide de
.NET
Framework dans 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 specializes in anything Microsoft-related and always tries to work and apply code in an IT infrastructure.
LinkedIn