Comment extraire le nom de fichier d'un chemin en utilisant PowerShell
-
Utiliser la cmdlet
Split-Path
pour extraire le nom de fichier à partir d’un chemin dans PowerShell - Utiliser les méthodes de la classe Path de .NET pour extraire le nom de fichier à partir d’un chemin dans PowerShell
-
Utiliser les cmdlets
Get-Item
etGet-ChildItem
pour extraire le nom de fichier à partir d’un chemin dans PowerShell - Utiliser des expressions régulières pour extraire le nom de fichier à partir d’un chemin dans PowerShell
- Utiliser la manipulation de chaînes pour extraire le nom de fichier à partir d’un chemin dans PowerShell
-
Utiliser la classe
System.IO.FileInfo
pour extraire le nom de fichier à partir d’un chemin dans PowerShell - Conclusion

Un chemin de fichier indique l’emplacement du fichier sur le système. Lors de la manipulation de fichiers dans PowerShell, vous pourriez avoir besoin d’obtenir uniquement le nom du fichier à partir d’un chemin.
Il existe plusieurs façons de récupérer le chemin des fichiers dans PowerShell. Ce tutoriel vous apprendra à extraire le nom de fichier à partir d’un chemin avec PowerShell.
Utiliser la cmdlet Split-Path
pour extraire le nom de fichier à partir d’un chemin dans PowerShell
Dans PowerShell, la cmdlet Split-Path
est un outil pratique pour isoler des segments spécifiques d’un chemin donné. Que ce soit le dossier parent, le sous-dossier, le nom du fichier ou juste l’extension du fichier, Split-Path
vous permet de cibler et d’afficher ces éléments.
Extraire le nom de fichier avec l’extension
Pour capture le nom du fichier avec son extension à partir d’un chemin, vous pouvez utiliser la commande Split-Path
avec le paramètre -Leaf
:
Split-Path C:\pc\test_folder\hello.txt -Leaf
Sortie :
hello.txt
Obtenir le nom de fichier sans l’extension
Dans les cas où vous avez besoin du nom du fichier sans l’extension, le paramètre -LeafBase
est utile. Cependant, il est important de noter que ce paramètre est disponible dans les versions 6.0 et ultérieures de PowerShell :
Split-Path C:\pc\test_folder\hello.txt -LeafBase
Sortie :
hello
Utiliser les méthodes de la classe Path de .NET pour extraire le nom de fichier à partir d’un chemin dans PowerShell
Dans .NET, la classe Path
offre des méthodes utiles pour extraire facilement le nom de fichier et l’extension d’un chemin spécifié. Explorons ces capacités avec des exemples.
Extraire le nom de fichier avec l’extension en utilisant GetFileName
La méthode GetFileName
de la classe Path
récupère le nom du fichier avec son extension à partir d’un chemin donné. Illustrons cela avec le chemin C:\pc\test_folder\hello.txt
:
[System.IO.Path]::GetFileName('C:\pc\test_folder\hello.txt')
Sortie :
hello.txt
Obtenir le nom de fichier sans extension en utilisant GetFileNameWithoutExtension
Pour extraire uniquement le nom du fichier sans l’extension, vous pouvez utiliser la méthode GetFileNameWithoutExtension
. Cela est particulièrement utile lorsque vous avez besoin du nom du fichier lui-même, en excluant le type de fichier :
[System.IO.Path]::GetFileNameWithoutExtension('C:\pc\test_folder\hello.txt')
Sortie :
hello
Utiliser les cmdlets Get-Item
et Get-ChildItem
pour extraire le nom de fichier à partir d’un chemin dans PowerShell
Dans PowerShell, les cmdlets Get-Item
et Get-ChildItem
sont des outils essentiels pour travailler avec des fichiers et des répertoires, vous permettant d’extraire des informations spécifiques sur l’élément à un emplacement donné.
Voyons comment utiliser ces cmdlets pour extraire le nom du fichier à partir d’un chemin donné, y compris les variations pour obtenir le nom de fichier avec ou sans l’extension.
Extraire le nom de fichier avec l’extension en utilisant Get-Item
La cmdlet Get-Item
récupère des informations détaillées sur l’élément spécifié, y compris son répertoire, son mode, sa dernière date de modification, sa longueur et son nom. Pour extraire le nom de fichier avec l’extension, vous pouvez utiliser la propriété .Name
en combinaison avec Get-Item
.
Illustrons cela avec un chemin spécifique, C:\pc\test_folder\hello.txt
:
(Get-Item C:\pc\test_folder\hello.txt).Name
Sortie :
hello.txt
Obtenir le nom de fichier sans extension en utilisant Get-Item
Si vous avez besoin d’extraire uniquement le nom de fichier sans l’extension, vous pouvez utiliser la propriété .BaseName
en combinaison avec Get-Item
. Cela vous permet d’isoler juste le nom du fichier à partir du chemin fourni :
(Get-Item C:\pc\test_folder\hello.txt).BaseName
Sortie :
hello
Appliquer la méthode avec Get-ChildItem
Cette approche est également applicable lors de l’utilisation de la cmdlet Get-ChildItem
, qui récupère des informations sur les éléments dans un emplacement spécifié. Voici comment vous pouvez l’utiliser pour extraire le nom de fichier avec ou sans l’extension :
(Get-ChildItem C:\pc\test_folder\hello.txt).Name
(Get-ChildItem C:\pc\test_folder\hello.txt).BaseName
Sortie :
hello.txt
hello
Utiliser des expressions régulières pour extraire le nom de fichier à partir d’un chemin dans PowerShell
Les expressions régulières peuvent également être utilisées pour extraire le nom du fichier à partir d’un chemin dans PowerShell. La classe Regex
de .NET fournit des outils puissants pour la correspondance et la manipulation de motifs.
Voyons comment cela fonctionne :
# Define the path
$path = "C:\pc\test_folder\hello.txt"
# Use regular expression to extract the filename
$filename = [System.Text.RegularExpressions.Regex]::Match($path, '\\([^\\]+)$').Groups[1].Value
$filename
Sortie :
hello.txt
Dans cet exemple, nous utilisons une expression régulière pour capturer le texte après le dernier antislash, qui représente le nom du fichier avec son extension.
L’expression régulière '\\([^\\]+)$'
peut être décomposée comme suit :
\\
: Correspond à un antislash dans le chemin.([^\\]+)
: Capture un ou plusieurs caractères qui ne sont pas un antislash (représentant le nom du fichier avec l’extension) dans un groupe de capture.$
: Indique que la correspondance doit se produire à la fin de la chaîne.
En utilisant la méthode Match
de la classe Regex
, nous appliquons l’expression régulière au chemin.
La correspondance résultante contient le nom du fichier avec son extension. Nous y accédons via Groups[1].Value
pour extraire le nom de fichier souhaité.
Utiliser la manipulation de chaînes pour extraire le nom de fichier à partir d’un chemin dans PowerShell
Des techniques de manipulation de chaînes peuvent également être utilisées pour extraire le nom de fichier à partir d’un chemin. Par exemple, vous pouvez utiliser la méthode LastIndexOf
pour trouver la dernière occurrence de l’antislash et extraire le nom du fichier en conséquence.
# Define the path
$path = "C:\pc\test_folder\hello.txt"
# Find the index of the last backslash
$lastBackslashIndex = $path.LastIndexOf("\") + 1
# Extract the filename
$filename = $path.Substring($lastBackslashIndex)
$filename
Sortie :
hello.txt
Ici, nous utilisons la méthode LastIndexOf
pour déterminer l’index de la dernière occurrence d’un antislash (\
) dans le chemin, identifiant essentiellement la position où commence le nom du fichier.
$lastBackslashIndex = $path.LastIndexOf("\") + 1
: Cette ligne calcule l’index du dernier antislash et ajoute1
pour s’assurer que nous commençons à extraire des caractères après l’antislash.
Ensuite, nous utilisons la méthode Substring
pour extraire le nom de fichier, en commençant à l’index après le dernier antislash et en continuant jusqu’à la fin de la chaîne.
$filename = $path.Substring($lastBackslashIndex)
: Ici, nous extrayons le nom du fichier en utilisantSubstring
avec l’index calculé.
Utiliser la classe System.IO.FileInfo
pour extraire le nom de fichier à partir d’un chemin dans PowerShell
La classe System.IO.FileInfo
fournit des propriétés pour accéder aux informations sur le fichier, y compris le nom du fichier. Nous pouvons créer un objet FileInfo
et ensuite accéder à la propriété Name
pour obtenir le nom du fichier.
# Define the path
$path = "C:\pc\test_folder\hello.txt"
# Create a FileInfo object
$fileInfo = New-Object System.IO.FileInfo $path
# Extract the filename
$filename = $fileInfo.Name
$filename
Sortie :
hello.txt
Dans cet exemple, nous créons un objet FileInfo
en utilisant New-Object
et la classe System.IO.FileInfo
, ce qui nous permet d’accéder aux propriétés et méthodes liées au fichier.
$fileInfo = New-Object System.IO.FileInfo $path
: Cette ligne de code construit un objetFileInfo
basé sur le chemin fourni.
Ensuite, nous utilisons la propriété Name
de l’objet FileInfo
pour extraire le nom du fichier.
$filename = $fileInfo.Name
: Ici, nous récupérons le nom du fichier en accédant à la propriétéName
de l’objetFileInfo
.
Conclusion
Dans ce tutoriel, nous avons exploré diverses méthodes pour extraire des noms de fichiers à partir de chemins dans PowerShell. De l’utilisation de cmdlets intégrés comme Split-Path
à l’emploi d’expressions régulières et de manipulation de chaînes, vous avez un éventail d’options à choisir en fonction de vos besoins spécifiques.
Comprendre ces techniques améliorera votre compétence dans la gestion des chemins de fichiers et l’extraction d’informations essentielles sur les fichiers dans PowerShell. Que vous préfériez la simplicité des cmdlets intégrés ou la polyvalence des expressions régulières, PowerShell offre un ensemble robuste d’outils pour une manipulation efficace des fichiers.
Article 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