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

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:
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:
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:
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:
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.
Marion specializes in anything Microsoft-related and always tries to work and apply code in an IT infrastructure.
LinkedInVerwandter 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