Wie man den Dateinamen aus einem Pfad mit PowerShell extrahiert
-
Verwenden Sie das Cmdlet
Split-Path
, um den Dateinamen aus einem Pfad in PowerShell zu extrahieren - Verwenden Sie die Methoden der Path-Klasse von .NET, um den Dateinamen aus einem Pfad in PowerShell zu extrahieren
-
Verwenden Sie die Cmdlets
Get-Item
undGet-ChildItem
, um den Dateinamen aus einem Pfad in PowerShell zu extrahieren - Verwenden Sie reguläre Ausdrücke, um den Dateinamen aus einem Pfad in PowerShell zu extrahieren
- Verwenden Sie die Zeichenfolgenmanipulation, um den Dateinamen aus einem Pfad in PowerShell zu extrahieren
-
Verwenden Sie die Klasse
System.IO.FileInfo
, um den Dateinamen aus einem Pfad in PowerShell zu extrahieren - Fazit

Ein Dateipfad gibt den Speicherort der Datei im System an. Beim Arbeiten mit Dateien in PowerShell müssen Sie möglicherweise nur den Dateinamen aus einem Pfad abrufen.
Es gibt mehrere Möglichkeiten, um den Pfad der Dateien zu erhalten in PowerShell. Dieses Tutorial zeigt Ihnen, wie Sie den Dateinamen aus einem Dateipfad mit PowerShell extrahieren.
Verwenden Sie das Cmdlet Split-Path
, um den Dateinamen aus einem Pfad in PowerShell zu extrahieren
In PowerShell ist das Cmdlet Split-Path
ein praktisches Werkzeug, um bestimmte Segmente eines gegebenen Pfads zu isolieren. Egal, ob es sich um den übergeordneten Ordner, einen Unterordner, den Dateinamen oder nur die Dateierweiterung handelt, Split-Path
ermöglicht es Ihnen, diese Elemente gezielt anzuzeigen.
Den Dateinamen mit Erweiterung extrahieren
Um den Dateinamen zusammen mit seiner Erweiterung aus einem Pfad abzurufen, können Sie den Befehl Split-Path
mit dem Parameter -Leaf
verwenden:
Split-Path C:\pc\test_folder\hello.txt -Leaf
Ausgabe:
hello.txt
Den Dateinamen ohne Erweiterung erhalten
In Fällen, in denen Sie den Dateinamen ohne die Erweiterung benötigen, ist der Parameter -LeafBase
nützlich. Es ist jedoch wichtig zu beachten, dass dieser Parameter in PowerShell-Versionen 6.0 und höher verfügbar ist:
Split-Path C:\pc\test_folder\hello.txt -LeafBase
Ausgabe:
hello
Verwenden Sie die Methoden der Path-Klasse von .NET, um den Dateinamen aus einem Pfad in PowerShell zu extrahieren
In .NET bietet die Klasse Path
nützliche Methoden, um den Dateinamen und die Erweiterung einfach aus einem bestimmten Pfad zu extrahieren. Lassen Sie uns diese Möglichkeiten mit Beispielen erkunden.
Dateinamen mit Erweiterung mit GetFileName
extrahieren
Die Methode GetFileName
der Klasse Path
ruft den Dateinamen zusammen mit seiner Erweiterung aus einem gegebenen Pfad ab. Lassen Sie uns dies am Pfad C:\pc\test_folder\hello.txt
demonstrieren:
[System.IO.Path]::GetFileName('C:\pc\test_folder\hello.txt')
Ausgabe:
hello.txt
Den Dateinamen ohne Erweiterung mit GetFileNameWithoutExtension
erhalten
Um nur den Dateinamen ohne die Erweiterung zu extrahieren, können Sie die Methode GetFileNameWithoutExtension
verwenden. Dies ist besonders nützlich, wenn Sie nur den Namen der Datei benötigen, ohne den Dateityp:
[System.IO.Path]::GetFileNameWithoutExtension('C:\pc\test_folder\hello.txt')
Ausgabe:
hello
Verwenden Sie die Cmdlets Get-Item
und Get-ChildItem
, um den Dateinamen aus einem Pfad in PowerShell zu extrahieren
In PowerShell sind die Cmdlets Get-Item
und Get-ChildItem
wesentliche Werkzeuge zum Arbeiten mit Dateien und Verzeichnissen, die es Ihnen ermöglichen, spezifische Informationen über das Element an einem gegebenen Ort zu extrahieren.
Sehen wir uns an, wie Sie diese Cmdlets verwenden können, um den Dateinamen aus einem bestimmten Pfad zu extrahieren, einschließlich Variationen, um den Dateinamen mit oder ohne Erweiterung zu erhalten.
Dateinamen mit Erweiterung mit Get-Item
extrahieren
Das Cmdlet Get-Item
ruft detaillierte Informationen über das angegebene Element ab, einschließlich Verzeichnis, Modus, letzter Schreibzeitpunkt, Länge und Name. Um den Dateinamen mit der Erweiterung zu extrahieren, können Sie die .Name
-Eigenschaft zusammen mit Get-Item
verwenden.
Lassen Sie uns dies mit einem bestimmten Pfad, C:\pc\test_folder\hello.txt
, demonstrieren:
(Get-Item C:\pc\test_folder\hello.txt).Name
Ausgabe:
hello.txt
Den Dateinamen ohne Erweiterung mit Get-Item
erhalten
Wenn Sie nur den Dateinamen ohne die Erweiterung extrahieren möchten, können Sie die .BaseName
-Eigenschaft in Kombination mit Get-Item
verwenden. Damit können Sie nur den Dateinamen aus dem angegebenen Pfad isolieren:
(Get-Item C:\pc\test_folder\hello.txt).BaseName
Ausgabe:
hello
Die Methode mit Get-ChildItem
anwenden
Dieser Ansatz ist auch anwendbar, wenn Sie das Cmdlet Get-ChildItem
verwenden, das Informationen über die Elemente an einem bestimmten Standort abruft. So können Sie den Dateinamen mit oder ohne die Erweiterung extrahieren:
(Get-ChildItem C:\pc\test_folder\hello.txt).Name
(Get-ChildItem C:\pc\test_folder\hello.txt).BaseName
Ausgabe:
hello.txt
hello
Verwenden Sie reguläre Ausdrücke, um den Dateinamen aus einem Pfad in PowerShell zu extrahieren
Reguläre Ausdrücke können ebenfalls verwendet werden, um den Dateinamen aus einem Pfad in PowerShell zu extrahieren. Die Regex
-Klasse in .NET bietet leistungsstarke Werkzeuge für Mustererkennung und Manipulation.
Sehen wir uns an, wie das funktioniert:
# 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
Ausgabe:
hello.txt
In diesem Beispiel verwenden wir einen regulären Ausdruck, um den Text nach dem letzten Backslash zu erfassen, der den Dateinamen zusammen mit seiner Erweiterung darstellt.
Der reguläre Ausdruck '\\([^\\]+)$'
kann wie folgt aufgeschlüsselt werden:
\\
: Entspricht einem Backslash im Pfad.([^\\]+)
: Erfasst ein oder mehrere Zeichen, die kein Backslash sind (was den Dateinamen mit Erweiterung darstellt) innerhalb einer Erfassungsgruppe.$
: Gibt an, dass die Übereinstimmung am Ende der Zeichenfolge auftreten soll.
Durch die Verwendung der Methode Match
aus der Regex
-Klasse wenden wir den regulären Ausdruck auf den Pfad an.
Die resultierende Übereinstimmung enthält den Dateinamen mit seiner Erweiterung. Wir greifen über Groups[1].Value
auf dies zu, um den gewünschten Dateinamen zu extrahieren.
Verwenden Sie die Zeichenfolgenmanipulation, um den Dateinamen aus einem Pfad in PowerShell zu extrahieren
Techniken zur Zeichenfolgenmanipulation können ebenfalls verwendet werden, um den Dateinamen aus einem Pfad zu extrahieren. Zum Beispiel können Sie die Methode LastIndexOf
verwenden, um das letzte Vorkommen des Backslashes zu finden und den Dateinamen entsprechend zu extrahieren.
# 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
Ausgabe:
hello.txt
Hier verwenden wir die Methode LastIndexOf
, um den Index des letzten Vorkommens eines Backslashes (\
) im Pfad zu bestimmen, was im Wesentlichen die Position identifiziert, an der der Dateiname beginnt.
$lastBackslashIndex = $path.LastIndexOf("\") + 1
: Diese Zeile berechnet den Index des letzten Backslashes und addiert1
, um sicherzustellen, dass wir mit dem Extrahieren von Zeichen nach dem Backslash beginnen.
Als Nächstes verwenden wir die Methode Substring
, um den Dateinamen zu extrahieren, beginnend ab dem Index nach dem letzten Backslash und fortlaufend bis zum Ende der Zeichenfolge.
$filename = $path.Substring($lastBackslashIndex)
: Hier extrahieren wir den Dateinamen, indem wirSubstring
mit dem berechneten Index verwenden.
Verwenden Sie die Klasse System.IO.FileInfo
, um den Dateinamen aus einem Pfad in PowerShell zu extrahieren
Die Klasse System.IO.FileInfo
bietet Eigenschaften, um auf Dateiinformationen zuzugreifen, einschließlich des Dateinamens. Wir können ein FileInfo
-Objekt erstellen und dann die Name
-Eigenschaft verwenden, um den Dateinamen zu erhalten.
# 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
Ausgabe:
hello.txt
In diesem Beispiel erstellen wir ein FileInfo
-Objekt mit New-Object
und der Klasse System.IO.FileInfo
, wodurch wir auf dateibezogene Eigenschaften und Methoden zugreifen können.
$fileInfo = New-Object System.IO.FileInfo $path
: Diese Zeile von Code konstruiert einFileInfo
-Objekt basierend auf dem angegebenen Pfad.
Als Nächstes verwenden wir die Name
-Eigenschaft des FileInfo
-Objekts, um den Dateinamen zu extrahieren.
$filename = $fileInfo.Name
: Hier rufen wir den Dateinamen ab, indem wir auf dieName
-Eigenschaft desFileInfo
-Objekts zugreifen.
Fazit
In diesem Tutorial haben wir verschiedene Methoden untersucht, um Dateinamen aus Pfaden in PowerShell zu extrahieren. Von der Verwendung integrierter Cmdlets wie Split-Path
bis hin zur Verwendung regulärer Ausdrücke und Zeichenfolgenmanipulation haben Sie eine Vielzahl von Optionen zur Auswahl, basierend auf Ihren spezifischen Anforderungen.
Das Verständnis dieser Techniken wird Ihre Fähigkeiten im Umgang mit Dateipfaden und der Extraktion wesentlicher Dateiinformationen in PowerShell verbessern. Egal, ob Sie die Einfachheit integrierter Cmdlets oder die Vielseitigkeit regulärer Ausdrücke bevorzugen, PowerShell bietet eine robuste Auswahl an Werkzeugen für eine effektive Dateimanipulation.
Verwandter Artikel - PowerShell File
- Wie man Dateien mit FTP in PowerShell hochlädt
- Wie man die Dateiversion in PowerShell erhält
- Wie man eine Textdatei mit Windows PowerShell erstellt
- So fügen Sie Daten mit PowerShell zu einer Datei hinzu
- Abfrage der letzten Schreibzeit der Datei in PowerShell
- CSV-Datei Zeile für Zeile in PowerShell lesen