Wie man den Dateinamen aus einem Pfad mit PowerShell extrahiert

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

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 addiert 1, 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 wir Substring 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 ein FileInfo-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 die Name-Eigenschaft des FileInfo-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.

Genießen Sie unsere Tutorials? Abonnieren Sie DelftStack auf YouTube, um uns bei der Erstellung weiterer hochwertiger Videoanleitungen zu unterstützen. Abonnieren
Rohan Timalsina avatar Rohan Timalsina avatar

Rohan is a learner, problem solver, and web developer. He loves to write and share his understanding.

LinkedIn Website

Verwandter Artikel - PowerShell File