Wie man Pfad und Erweiterung aus dem Dateinamen in PowerShell entfernt
-
Verwenden Sie die
BaseName
-Eigenschaft, um Pfad und Erweiterung vom Dateinamen in PowerShell zu entfernen -
Verwenden Sie die
System.IO.Path
-Klasse, um Pfad und Erweiterung vom Dateinamen in PowerShell zu entfernen - Fazit

PowerShell unterstützt die Handhabung verschiedener Dateioperationen im System. Sie können Aufgaben wie Erstellen, Kopieren, Verschieben, Umbenennen, Bearbeiten, Löschen und Anzeigen von Dateien in PowerShell durchführen.
Es gibt verschiedene Cmdlets in PowerShell, die Sie verwenden können, um den Namen vollen Pfad und Erweiterung einer Datei zu erhalten. Bei der Arbeit mit Dateien im System müssen Sie möglicherweise den Dateinamen ohne Pfad und Erweiterung erhalten.
Dieses Tutorial wird Ihnen beibringen, wie Sie den Pfad und die Erweiterung vom Dateinamen in PowerShell entfernen.
Verwenden Sie die BaseName
-Eigenschaft, um Pfad und Erweiterung vom Dateinamen in PowerShell zu entfernen
Das Cmdlet Get-Item
in PowerShell ist ein vielseitiges Werkzeug, das zum Abrufen der Eigenschaften von Elementen in Ihrem Dateisystem, wie Dateien und Verzeichnissen, verwendet wird. Eine dieser Eigenschaften ist .BaseName
, die besonders nützlich für unseren Zweck ist.
Beispiel:
(Get-Item "sample.txt").BaseName
In diesem Beispiel geht das Skript davon aus, dass sample.txt
eine Datei im aktuellen Verzeichnis ist. Wenn sich die Datei in einem anderen Verzeichnis befindet, sollten Sie den vollständigen Pfad angeben, wie C:\folder\sample.txt
.
Wenn wir (Get-Item "sample.txt").BaseName
ausführen, führt PowerShell zwei wichtige Aktionen aus.
Zuerst ruft Get-Item "sample.txt"
das Dateiobjekt ab, das sample.txt
entspricht. Dann greift .BaseName
auf die Eigenschaft dieses Dateiobjekts zu, die den Dateinamen ohne die Erweiterung enthält.
Ausgabe:
Wenn Sie den Pfad und die Erweiterung in mehreren Dateien entfernen möchten, können Sie das Cmdlet Get-ChildItem
verwenden. Der folgende Befehl zeigt, wie Sie mehrere Dateinamen ohne Pfad und Erweiterung in PowerShell abrufen können.
Beispiel
(Get-ChildItem "*.txt").BaseName
Diese Codezeile listet die Basisnamen (Dateinamen ohne Erweiterungen) aller .txt
-Dateien im angegebenen Verzeichnis auf.
-
Get-ChildItem "*.txt"
: Dieser Befehl holt alle.txt
-Dateien aus dem angegebenen Verzeichnis. -
.BaseName
: Auf diese Eigenschaft wird für jedes vonGet-ChildItem
zurückgegebene Dateiobjekt zugegriffen, um nur den Dateinamen ohne seine Erweiterung zu extrahieren.
Ausgabe:
Sie können auch die Klasse System.IO.FileInfo
mit der Eigenschaft basename
verwenden, um den Dateinamen ohne die Erweiterung zu erhalten.
System.IO.FileInfo
ist eine .NET
-Klasse, die Eigenschaften und Instanzmethoden für die Erstellung, Kopierung, Löschung, Verschiebung und Öffnung von Dateien bereitstellt. Sie bietet auch detaillierte Informationen über eine Datei, wie ihren Namen, Pfad, Größe usw.
Beispiel:
([System.IO.FileInfo]"sample.txt").BaseName
Diese Zeile geht davon aus, dass sample.txt
eine Datei im aktuellen Verzeichnis ist. Wenn sich die Datei woanders befindet, sollte der vollständige Pfad angegeben werden, wie C:\path\to\sample.txt
.
In diesem Beispiel erstellt ([System.IO.FileInfo]"sample.txt")
ein FileInfo
-Objekt für die Datei sample.txt
. Dieses Objekt enthält detaillierte Informationen über die Datei.
Durch den Zugriff auf die .BaseName
-Eigenschaft dieses Objekts erhalten wir den Namen der Datei ohne ihre Erweiterung.
Ausgabe:
Verwenden Sie die System.IO.Path
-Klasse, um Pfad und Erweiterung vom Dateinamen in PowerShell zu entfernen
Die Klasse System.IO.Path
bietet zahlreiche Methoden zur String-Manipulation von Datei-Pfaden. Die Methode GetFileNameWithoutExtension
wird insbesondere verwendet, um den Dateinamen aus einem vollständigen Pfad-String ohne die Erweiterung zu erhalten.
Beispiel:
[System.IO.Path]::GetFileNameWithoutExtension("sample.txt")
Dieses Beispiel geht davon aus, dass sample.txt
sich auf einen Dateinamen ohne einen Verzeichnispfad bezieht. Wenn sich die Datei in einem anderen Verzeichnis befindet, sollten Sie den vollständigen Pfad angeben, wie "C:\folder\sample.txt"
.
[System.IO.Path]::GetFileNameWithoutExtension("sample.txt")
nutzt die Methode GetFileNameWithoutExtension
aus der Klasse System.IO.Path
, um den String "sample.txt"
zu verarbeiten. Diese Methode analysiert den String intelligent, identifiziert die Dateierweiterung und entfernt sie, sodass nur der Basis-Dateiname zurückgegeben wird.
Diese Methode ist äußerst effizient und erfordert nicht, dass die tatsächliche Datei existiert, da sie rein auf der String-Ebene arbeitet.
Ausgabe:
Fazit
Zusammenfassend ist das Beherrschen der Datei-Manipulation in PowerShell entscheidend für eine effiziente Systemadministration, und dieser Artikel konzentrierte sich auf das Entfernen des Pfades und der Erweiterung von Dateinamen mit verschiedenen Methoden. Begonnen mit dem einfachen (Get-Item "sample.txt").BaseName
für einzelne Dateien, haben wir uns mit (Get-ChildItem "C:\Users\rhntm\*.txt").BaseName
zur Verarbeitung mehrerer Dateien weiterentwickelt, was einen wertvollen Ansatz für Massenoperationen bietet.
Die objektorientierte [System.IO.FileInfo]
-Klasse mit ([System.IO.FileInfo]"sample.txt").BaseName
bietet detaillierte Datei-Informationen, während die String-Manipulationsfähigkeiten von [System.IO.Path]::GetFileNameWithoutExtension("sample.txt")
die Leistungsfähigkeit von .NET
-Klassen veranschaulichen. Diese Methoden zeigen die Vielseitigkeit von PowerShell, und für diejenigen, die ihr Wissen vertiefen möchten, ist das Erkunden verwandter Themen wie die Arbeit mit vollständigen Dateipfaden und das Extrahieren von Dateierweiterungen eine logische Fortsetzung, um das volle Potenzial von PowerShell für umfassende System-Skripting- und Automatisierungsaufgaben freizuschalten.
Verwandter 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