Wie man die Dateierweiterung mit PowerShell erhält

  1. Erhalten Sie die Dateierweiterung mit Split-Path in PowerShell
  2. Erhalten Sie die Dateierweiterung mit dem Get-ChildItem Cmdlet in PowerShell
  3. Erhalten Sie die Dateierweiterung mit System.IO.Path in PowerShell
  4. Erhalten Sie die Dateierweiterung mit System.IO.FileInfo in PowerShell
  5. Fazit
Wie man die Dateierweiterung mit PowerShell erhält

Es wird normalerweise verlangt, einen Dateinamen aus dem vollständigen Pfad zu extrahieren, während Sie an Ihren PowerShell-Skripten arbeiten. Zum Beispiel hat Ihr Skript einen vollständigen Dateipfad erhalten, und Sie möchten nur die Dateierweiterung erhalten.

Dieser umfassende Leitfaden untersucht verschiedene Methoden zum Extrahieren von Dateierweiterungen mit PowerShell, eine Aufgabe, die grundlegend, aber entscheidend in zahlreichen Skript-Szenarien ist. Jedes Kapitel des Artikels stellt einen anderen Ansatz vor, von der Einfachheit von Split-Path bis zur ausgeklügelteren Verwendung des .NET-Frameworks und der System.IO.FileInfo-Klasse.

Erhalten Sie die Dateierweiterung mit Split-Path in PowerShell

Das Hauptziel der Verwendung von Split-Path -Leaf in diesem Kontext besteht darin, den Dateinamen und dessen Erweiterung aus einem gegebenen Pfad zu isolieren. Diese Methode ist besonders effektiv, wenn Sie nur mit dem Dateinamen oder einem relativen Pfad arbeiten.

Sobald der Dateiname erhalten wurde, kann die Erweiterung einfach mit Methoden zum Trennen von Zeichenfolgen extrahiert werden.

Beispielcode:

# Define the file path
$filePath = "sample.txt"

# Extract the file extension
$extension = (Split-Path -Path $filePath -Leaf).Split(".")[1]

# Output the extension
Write-Output $extension

In diesem Skript beginnen wir damit, einen Dateinamen $filePath zu definieren. Der Befehl Split-Path -Path $filePath -Leaf isoliert den Dateinamen (sample.txt).

Wir teilen dann diese Zeichenfolge am Punkt, was zu einem Array führt, bei dem das erste Element der Dateiname ohne die Erweiterung (sample) und das zweite Element die Erweiterung (txt) ist. Durch den Zugriff auf das zweite Element dieses Arrays mit [1] erhalten wir die Erweiterung.

Schließlich wird Write-Output verwendet, um die Erweiterung anzuzeigen.

Ausgabe:

Holen Sie sich die Dateiendung mit PowerShell - Ausgabe 1

Erhalten Sie die Dateierweiterung mit dem Get-ChildItem Cmdlet in PowerShell

Der Befehl Get-ChildItem erhält die Elemente an einem oder mehreren angegebenen Standorten. Zum Beispiel, wenn das Objekt ein Container ist, holt es die Dinge innerhalb des besagten Containers, bekannt als Kind-Elemente.

Ein Standort kann ein Dateisystem sein, wie ein Verzeichnis, oder ein von einem anderen Windows PowerShell-Anbieter bereitgestellter Standort. Der Befehl Get-ChildItem erhält die Verzeichnisse, Unterverzeichnisse und Dateien in einem Dateisystemlaufwerk.

Da das Cmdlet Get-ChildItem mit Dateien arbeitet, hat es ein PowerShell-Eigenschaftsattribut, das wir exportieren können, um die Erweiterung der abgefragten Datei zu erhalten. Im Gegensatz zum Cmdlet Split-Path kann diese Methode die Erweiterung korrekt übertragen, auch wenn es Punktzeichen im Dateinamen gibt.

Beispielcode:

Get-ChildItem 'sample.txt' | Select-Object Extension

In diesem Skript ruft Get-ChildItem 'sample.txt' das Dateiobjekt für sample.txt ab. Das Cmdlet Get-ChildItem wird typischerweise verwendet, um Elemente in einem Verzeichnis aufzulisten, gibt jedoch, wenn ein spezifischer Dateiname bereitgestellt wird, das Dateiobjekt für diese Datei zurück.

Dieses Objekt enthält verschiedene Eigenschaften, von denen eine die Erweiterung der Datei ist.

Die Ausgabe von Get-ChildItem wird dann an Select-Object Extension weitergeleitet. Dieses Cmdlet filtert die Eigenschaften des Dateiobjekts und gibt nur die Eigenschaft Extension aus.

Ausgabe:

Dateiendung mit PowerShell abrufen - Ausgabe 2

Erhalten Sie die Dateierweiterung mit System.IO.Path in PowerShell

Der folgende Ansatz basiert auf den Klassen des .NET-Frameworks. Auch wenn es allgemein abgeraten wird, .NET-Framework-Klassen in PowerShell-Skripten zu verwenden, insbesondere wenn ein natives PowerShell-Kommando verfügbar ist, kann es für diesen spezifischen Anwendungsfall geeignet sein.

Im folgenden Beispiel, wenn Ihnen der Dateiname gegeben wird, würden wir die statischen Methoden GetExtension aus der Klasse System.IO.Path verwenden:

Beispielcode:

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

Im bereitgestellten Beispiel wird die .NET-Klasse [System.IO.Path] verwendet, und ihre statische Methode GetExtension() wird aufgerufen. Wir übergeben "sample.txt" als Argument an die Methode.

Diese Methode analysiert die Zeichenfolge und extrahiert den Teilstring, der die Erweiterung der Datei darstellt. Die Schönheit dieser Methode liegt in ihrer Einfachheit und dem direkten Ansatz zur Behandlung von Dateinamen und -pfaden, da sie nicht erfordert, dass die Datei im Dateisystem existiert.

Ausgabe:

Dateiendung mit PowerShell abrufen - Ausgabe 3

Erhalten Sie die Dateierweiterung mit System.IO.FileInfo in PowerShell

Die Hauptnutzung von System.IO.FileInfo in diesem Kontext besteht darin, detaillierte Informationen über eine spezifische Datei zu erhalten, wie ihre Erweiterung. Diese Methode ist besonders nützlich in Skripten, in denen Metadaten zu Dateien entscheidend sind und mehr als nur grundlegende Dateioperationen erforderlich sind.

Beispielcode:

# Create a FileInfo object for the specified file
$FileInfo = New-Object System.IO.FileInfo('sample.txt')

# Access the extension property of the FileInfo object
$Extension = $FileInfo.Extension

# Print the extension
Write-Output $Extension

In diesem Skript beginnen wir den Prozess, indem wir ein System.IO.FileInfo-Objekt für sample.txt erstellen. Dieses Objekt kapselt verschiedene Details über die Datei, einschließlich ihres Namens, Verzeichnisses, ihrer Größe und, wichtig, ihrer Erweiterung.

Durch den Zugriff auf die .Extension-Eigenschaft des FileInfo-Objekts extrahieren wir die Erweiterung der Datei. Diese Eigenschaft gibt die Erweiterung als String zurück, vollständig mit dem führenden Punkt (z.B. .txt).

Ausgabe:

Ermitteln Sie die Dateiendung mit PowerShell - Ausgabe 4

Fazit

Die Navigation durch die Nuancen von Dateierweiterungen in PowerShell offenbart ein Spektrum von Techniken, jede mit ihren einzigartigen Vorteilen und Anwendungen. Diese Erkundung hat uns von der unkomplizierten Nutzung von Split-Path und Get-ChildItem, die ideal für einfache und schnelle Abfragen sind, zu den tiefergehenden Bereichen des .NET-Frameworks mit System.IO.Path und System.IO.FileInfo geführt, wo ein Gleichgewicht zwischen Komplexität und Fähigkeit elegant erreicht wird.

Egal, ob Sie eine routinemäßige Aufgabe automatisieren, Massen-Dateioperationen durchführen oder ausgeklügelte Skripte zur Systemverwaltung entwickeln, das Verständnis dieser Methoden bereichert Ihr PowerShell-Werkzeugset. Die vielfältigen Ansätze, die hier diskutiert werden, unterstreichen die Anpassungsfähigkeit und Robustheit von PowerShell und befähigen sowohl Anfänger als auch erfahrene Skripter, ihre Lösungen präzise und effizient zu gestalten.

Genießen Sie unsere Tutorials? Abonnieren Sie DelftStack auf YouTube, um uns bei der Erstellung weiterer hochwertiger Videoanleitungen zu unterstützen. Abonnieren
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

Verwandter Artikel - PowerShell File