Unterordner Leerzeichen durch Unterstrich ersetzen
Guten Morgen zusammen,
ich möchte gerade in einem Verzeichnis unter Windows, die Namen von allen Ordnern ändern indem ich die Leerzeichen mit Unterstrichen ersetze, mein Skript funktioniert aber nicht
ace-sad" alt=
ace-sad">
Kann mir jemand diesbezüglich helfen?
Vielen Dank!
ich möchte gerade in einem Verzeichnis unter Windows, die Namen von allen Ordnern ändern indem ich die Leerzeichen mit Unterstrichen ersetze, mein Skript funktioniert aber nicht
ace-sad">
Kann mir jemand diesbezüglich helfen?
$Files = Get-ChildItem -Path "C:\Users\...\Desktop\testLeer"
Copy-Item $Files.FullName -Destination C:\Users\...\Desktop\test
Set-Location -Path C:\Users\...\Desktop\test
Get-ChildItem -File | %{Rename-Item -NewName ( $_.Name -replace ' ','_' )}
Vielen Dank!
Please also mark the comments that contributed to the solution of the article
Content-Key: 5500710084
Url: https://administrator.de/contentid/5500710084
Printed on: December 10, 2023 at 12:12 o'clock
3 Comments
Latest comment
Moin,
Du möchtest alle Unterordner eines Verzeichnisses umbenennen? oder Dateien? oder beides?
Alle Unterordner in dem Ordner umbenennen:
Alle Unterordner UND deren Unterordner umbenennen:
Alle Dateien in dem Ordner umbenennen:
Alle Dateien im Ordner UND Unterordner umbenennen:
Alle Dateien UND Ordner im Ordner umbenennen:
Alle Dateien UND Ordner im Ordner UND Unterordner umbenennen:
Du möchtest alle Unterordner eines Verzeichnisses umbenennen? oder Dateien? oder beides?
Alle Unterordner in dem Ordner umbenennen:
$folder = "C:\users\xxx\Desktop\testLeer"
Get-ChildItem -Path $folder -Directory | %{Rename-Item -Path $_.FullName -NewName ( $_.Name -replace ' ','_' )}
Alle Unterordner UND deren Unterordner umbenennen:
$folder = "C:\users\xxx\Desktop\testLeer"
Get-ChildItem -Path $folder -Directory -Recurse | %{Rename-Item -Path $_.FullName -NewName ( $_.Name -replace ' ','_' )}
Alle Dateien in dem Ordner umbenennen:
$folder = "C:\users\xxx\Desktop\testLeer"
Get-ChildItem -Path $folder -File | %{Rename-Item -Path $_.FullName -NewName ( $_.Name -replace ' ','_' )}
Alle Dateien im Ordner UND Unterordner umbenennen:
$folder = "C:\users\xxx\Desktop\testLeer"
Get-ChildItem -Path $folder -File -Recurse | %{Rename-Item -Path $_.FullName -NewName ( $_.Name -replace ' ','_' )}
Alle Dateien UND Ordner im Ordner umbenennen:
$folder = "C:\users\xxx\Desktop\testLeer"
Get-ChildItem -Path $folder | %{Rename-Item -Path $_.FullName -NewName ( $_.Name -replace ' ','_' )}
Alle Dateien UND Ordner im Ordner UND Unterordner umbenennen:
$folder = "C:\users\xxx\Desktop\testLeer"
Get-ChildItem -Path $folder -Recurse | %{Rename-Item -Path $_.FullName -NewName ( $_.Name -replace ' ','_' )}

Nur zur Info, die Varianten mit Unterordnern und Dateien werden dann fehlschlagen wenn einer der Oberordner und dann auch eine Datei oder ein Unterordner in diesem Ordner wegen Leerzeichen umbenannt wird. Der Grund, durch die Reihenfolge der Sortierung ändert sich schon der Pfad was dann zum Fehler führt weil der Ordner oberhalb ja inzwischen anders heißt.
Man sollte also zumindest noch eine umgekehrte Sortierung (sort-object) nach der Gesamtpfadlänge/Level vor dem Umbenennen dazwischen schalten.
Etwa so
Gruß Wurstel
Man sollte also zumindest noch eine umgekehrte Sortierung (sort-object) nach der Gesamtpfadlänge/Level vor dem Umbenennen dazwischen schalten.
Etwa so
$folder = "C:\users\xxx\Desktop\testLeer"
Get-ChildItem -Path $folder -Directory -Recurse | sort {$_.Fullname.length} -Descending | Rename-Item -NewName {$_.Name -replace '\s+','_'}
Gruß Wurstel