Powershell Ordner mit Zeichen umbenennen
Hallo zusammen,
ich habe ein Script geschrieben die die Verzeichnisse nach leeren Ordnern durchsucht und löscht. Das Problem ist, aber, dass die Struktur verändert wird.
Ich möchte nun, dass die Ordner die leer sind, ein # vorne bekommen z.B. #Ordner1.
Und kann ich zum Beispiel auf die Tiefe begrenzen? Nur zum Beispiel zwei Ebenen?
Vielen Dank
Grüße
Micha
ich habe ein Script geschrieben die die Verzeichnisse nach leeren Ordnern durchsucht und löscht. Das Problem ist, aber, dass die Struktur verändert wird.
Ich möchte nun, dass die Ordner die leer sind, ein # vorne bekommen z.B. #Ordner1.
Und kann ich zum Beispiel auf die Tiefe begrenzen? Nur zum Beispiel zwei Ebenen?
Vielen Dank
Grüße
Micha
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 1122220891
Url: https://administrator.de/forum/powershell-ordner-mit-zeichen-umbenennen-1122220891.html
Ausgedruckt am: 22.04.2025 um 18:04 Uhr
6 Kommentare
Neuester Kommentar

Und kann ich zum Beispiel auf die Tiefe begrenzen? Nur zum Beispiel zwei Ebenen?
Indem man die Doku liest:Get-ChildItem
[-Depth <uint32>]
-Depth
This parameter was added in PowerShell 5.0 and enables you to control the depth of recursion. By default, Get-ChildItem displays the contents of the parent directory. The Depth parameter determines the number of subdirectory levels that are included in the recursion and displays the contents.
For example, Depth 2 includes the Path parameter's directory, first level of subdirectories, and second level of subdirectories. By default directory names and filenames are included in the output.
gci 'F:\Ordner' -Directory -Depth 1 | ?{!(ls $_.FullName -Force)} | rename-item -NewName {"#$($_.Name)"} -Force
Moin,
Aber dann mache es doch den Anfängern nicht immer so schwer und benutze keine Aliase und dann auch noch verschiedene für denselben Befehl. Für den TO: gci und ls sind Aliase für get-childitem und ? ist ein Alias für where-object.
Und rein interessehalber: Warum sortierst Du das Ergebnis vor dem Umbenennen?
Liebe Grüße
Erik
Zitat von @149062:
Get-ChildItem
Und kann ich zum Beispiel auf die Tiefe begrenzen? Nur zum Beispiel zwei Ebenen?
Indem man die Doku liest:Get-ChildItem
> gci 'F:\Ordner' -Directory -Depth 1 | ?{!(ls $_.FullName -Force -Recurse)} | sort {$_.FullName.length} -Desc | rename-item -NewName {"#$($_.Name)"} -Force
>
Aber dann mache es doch den Anfängern nicht immer so schwer und benutze keine Aliase und dann auch noch verschiedene für denselben Befehl. Für den TO: gci und ls sind Aliase für get-childitem und ? ist ein Alias für where-object.
Und rein interessehalber: Warum sortierst Du das Ergebnis vor dem Umbenennen?
Liebe Grüße
Erik

Und rein interessehalber: Warum sortierst Du das Ergebnis vor dem Umbenennen?
Da war ich in Gedanken parallel gerade bei einem anderen Projekt, ist hier überflüssig sorry. Das wäre nur relevant wenn nur Dateien in Ordnern beachtet werden müssen und nicht auch Unterordner denn sonst könnte unter Umständen ein Ordner einer höheren Ebene als erstes umbenannt werden woraufhin dann ein Umbenennen in einer unteren Ebene dieses Ordners fehlschlagen würde weil man den in der höheren Ebene bereits umbenannt hat.Für den TO: gci und ls sind Aliase für get-childitem und ? ist ein Alias für where-object
Und ein get-alias zeigt ihm gleich alle Abkürzungen an ...Zitat von @149062:
Und rein interessehalber: Warum sortierst Du das Ergebnis vor dem Umbenennen?
Da war ich in Gedanken parallel gerade bei einem anderen Projekt, ist hier überflüssig sorry.Dann bin ich beruhigt. Ich habe mir ernsthaft Gedanken darüber gemacht, was der Sinn ist, und konnte keinen finden.
Und ein get-alias zeigt ihm gleich alle Abkürzungen an ...
Ja klar. Aber hilfreicher wäre es für die Lesbarkeit, die Befehle auszuschreiben. Selbst ich hatte bei gci und ls erstmal ganz kurz ein Fragezeichen im Gesicht.