Umbenennen von Dateien und Ordnern mit PowerShell
Das Umbenennen von Dateien und Ordnern gehört höchstwahrscheinlich zu den Grundfunktionen des Windows-Betriebssystems. Wir können Dateien und Ordner über die GUI umbenennen, indem wir mit der rechten Maustaste auf eine Datei klicken und Umbenennen
auswählen.
Wenn mehrere Dateien umbenannt werden müssen, ist es effizienter, dies durch Automatisierung anzugehen. In diesem Artikel wird das Filtern von Dateien und Ordnern sowie das Umbenennen der Dateinamen und das Ändern der Dateierweiterung mit Windows PowerShell erläutert.
Filtern von Dateien und Ordnern in PowerShell
Der Windows PowerShell-Befehl Get-ChildItem
ruft die Betriebssystemelemente in einem angegebenen Verzeichnis oder Speicherort ab. Darüber hinaus kann der im Cmdlet angegebene Speicherort eine Registrierung, ein Dateisystem oder ein Zertifikatspeicher sein.
Wir werden unsere Beispiele für diesen Artikel mehr auf Dateien und Ordner konzentrieren.
Syntax:
Get-ChildItem -Path C:\PS\Temp
Im obigen Befehl ruft das Cmdlet Get-ChildItem
alle Elemente aus dem angegebenen Wert des Parameters -Path
ab. Das Cmdlet Get-ChildItem
zeigt bei Ausführung Dateien und Verzeichnisse mit ihren Eigenschaften Mode
, LastWriteTime
, Length
(Dateigrösse) und Name
auf der PowerShell-Konsole an.
Ausgang:
Mode LastWriteTime Length Name
---- ------------- ------ ----
d----l 18/01/2022 8:52 pm Microsoft
d----l 20/12/2021 3:36 pm Cisco
-a---l 30/12/2021 3:24 pm (151) backup_phrase.txt
-a---l 17/06/2021 3:23 am (410049) CEF17501168.pdf
-a---l 16/05/2021 3:32 am (677) default.txt
-a---l 21/08/2020 9:06 am (2240) test.csv
-a---l 26/06/2021 8:25 am (63399) banner.jpg
-a---l 09/03/2021 10:48 pm (143) inventory.xlsx
<SNIP>
Mit dem Parameter -Filter
können wir unsere Suchergebnisse mit nur einem einzigen Ausdruck einschränken. Wir können auch den Alias gci
als Ersatz für den Befehl Get-ChildItem
verwenden, um ein nahtloseres Schreiberlebnis zu erzielen.
Beispielcode:
gci -Filter C:\PS\Temp\* -Filter *.xlsx
Ausgang:
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a---l 09/03/2021 10:48 pm (143) inventory.xlsx
<SNIP>
Wir können die Parameter -Include
verwenden, die mehrere Bedingungen akzeptieren. Daher können wir sagen, dass der Parameter -Include
besser ist als der Parameter -Filter
.
Der Parameter -Include
erfordert jedoch, dass der Parameter -Path
im Ausdruck vorhanden ist.
Beispielcode:
gci -Path C:\PS\Temp\* -File -Include CEF*.pdf, *.xlsx, *.txt
Ausgang:
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a---l 17/06/2021 3:23 am (410049) CEF17501168.pdf
-a---l 16/05/2021 3:32 am (677) default.txt
-a---l 09/03/2021 10:48 pm (143) inventory.xlsx
<SNIP>
Der Pfad sollte am Ende ein Platzhalter-Sternchen (*
) enthalten, wenn der Switch-Parameter ‘- Include’ verwendet wird. Dieser Platzhalter gibt an, dass wir alle untergeordneten Pfadelemente mit der spezifischen Erweiterung abfragen, die im Parameter -Include
definiert ist.
Umbenennen von Dateien in PowerShell
Der Windows PowerShell-Umbenennungsbefehl Rename-Item
dient dazu, die Dateinamen von Betriebssystemelementen wie Dateien und Ordnern umzubenennen. Zum Beispiel ändern wir den Namen TestFile.txt
in RenamedFile.txt
.
Beispielcode:
Rename-Item -Path '.\TestFile.txt' -NewName 'RenamedFile.txt'
gci -Filter 'RenamedFile.txt'
Wenn wir nun einen gci
-Befehl zum Filtern eines bestimmten Elements initiieren, sollte uns dies bestätigen, dass die Datei umbenannt wurde.
Ausgang:
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a---- 12/10/2021 11:38 PM 2982 RenamedFile.txt
Das Cmdlet Rename-Item
benennt nicht nur den Dateinamen einer bestimmten Datei um, sondern kann auch das Format von Dateien ändern. Das folgende Code-Snippet verwendet beispielsweise die Kombination der Befehle Get-ChildItem
und Rename-Item
, indem alle Dateien mit dem Format .txt
gefiltert und ihr Dateiformat in .csv
geändert werden.
Beispielcode:
gci *.txt | Rename-Item -NewName { $_.Name -replace '.txt', '.csv' }
gci -Filter *.csv
Ausgang:
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a---- 12/10/2021 11:38 PM 2982 RenamedFile.csv
Marion specializes in anything Microsoft-related and always tries to work and apply code in an IT infrastructure.
LinkedIn