Rufen Sie die Dateierweiterung mit PowerShell ab
-
Holen Sie sich die Dateierweiterung mit
Split-Path
in PowerShell -
Rufen Sie die Dateierweiterung mit dem Cmdlet
Get-ChildItem
in PowerShell ab -
Holen Sie sich die Dateierweiterung mit dem
.NET
Framework in PowerShell
Normalerweise muss ein Dateiname aus dem vollständigen Pfad extrahiert werden, während Sie an Ihren PowerShell-Skripts arbeiten. Ihr Skript hat beispielsweise einen vollständigen Dateipfad erhalten und Sie möchten nur die Dateierweiterung abrufen.
In diesem Artikel werden mehrere Dateierweiterungsmethoden mithilfe von PowerShell-Skripting erläutert.
Holen Sie sich die Dateierweiterung mit Split-Path
in PowerShell
Um die Erweiterung vom Dateinamen zu trennen, können wir den Parameter -Leaf
verwenden, um anzugeben, wo wir die Erweiterung extrahieren werden. Das Blatt ist das letzte Element oder Teil eines Pfades.
$filePath = "C:\temp\subfolder\File1.txt";
$extension = (Split-Path -Path $filePath -Leaf).Split(".")[1];
Write-Output $extension
Ausgabe:
txt
Sie werden vielleicht bemerken, dass wir in unserem Code-Snippet die Funktion Split()
aufgerufen haben, die den bereitgestellten Pfad aufteilt.
Wir haben den Punkt .
als Trennzeichen, da der Dateiname und die Erweiterung durch einen Punkt getrennt werden. Wir haben dann das Array [1]
den gespeicherten Erweiterungswert genannt.
Versuchen Sie, das Array [0]
aufzurufen, und Sie erhalten den Dateinamen des Pfads.
Beispielcode:
(Split-Path -Path $filePath -Leaf).Split(".")[0];
Ausgabe:
File1
Da wir den Punkt als Trennzeichen verwenden, funktioniert diese Methode nur, wenn Ihre Dateinamen keine anderen Punkte enthalten. Denken Sie daran, dass ein Punkt in einem Dateinamen enthalten sein kann.
Rufen Sie die Dateierweiterung mit dem Cmdlet Get-ChildItem
in PowerShell ab
Der Befehl Get-ChildItem
ruft die Elemente an einem oder mehreren angegebenen Orten ab. Wenn das Objekt beispielsweise ein Container ist, erhält es die Dinge in diesem Container, die als untergeordnete Elemente bezeichnet werden.
Ein Speicherort kann ein Dateisystem sein, z. B. ein Verzeichnis, oder eine Website, die von einem anderen Windows PowerShell-Anbieter verfügbar gemacht wird. Der Befehl Get-ChildItem
ruft die Verzeichnisse, Unterverzeichnisse und Dateien in einem Dateisystemlaufwerk ab.
Da das Cmdlet Get-ChildItem
mit Dateien umgeht, 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 versenden, obwohl der Dateiname Punktzeichen enthält.
Beispielcode:
Get-ChildItem 'C:\temp\file.1.txt' | Select Extension
Ausgabe:
Extension
---------
.txt
Holen Sie sich die Dateierweiterung mit dem .NET
Framework in PowerShell
Der folgende Ansatz basiert auf .NET
-Framework-Klassen. Obwohl allgemein davon abgeraten wird, .NET
-Framework-Klassen in PowerShell-Skripten zu verwenden, insbesondere wenn ein nativer PowerShell-Befehl verfügbar ist, kann dies für diesen speziellen Anwendungsfall angemessen sein.
Wenn Sie im folgenden Beispiel den Dateinamen erhalten, würden wir die statischen Methoden GetExtension
aus der Klasse System.IO.Path
verwenden:
Beispielcode:
[System.IO.Path]::GetExtension("File1.txt")
Ausgabe:
.txt
Wir können stattdessen auch die statische Methode GetFileNameWithoutExtension
verwenden, wenn wir den Dateinamen erhalten möchten.
Beispielcode:
[System.IO.Path]::GetFileNameWithoutExtension("File1.txt")
Ausgabe:
File1
Marion specializes in anything Microsoft-related and always tries to work and apply code in an IT infrastructure.
LinkedIn