Rufen Sie die Dateierweiterung mit PowerShell ab

  1. Holen Sie sich die Dateierweiterung mit Split-Path in PowerShell
  2. Rufen Sie die Dateierweiterung mit dem Cmdlet Get-ChildItem in PowerShell ab
  3. Holen Sie sich die Dateierweiterung mit dem .NET Framework in PowerShell
Rufen Sie die Dateierweiterung mit PowerShell ab

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 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