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![face-sad face-sad](/images/icons/fa/light/face-frown.svg)
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
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: July 27, 2024 at 12:07 o'clock
3 Comments
Latest comment
![Mitglied: 3063370895 Mitglied: 3063370895](/images/members/profile_male_64x64.png)
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 ' ','_' )}
![Mitglied: 5175293307 Mitglied: 5175293307](/images/members/profile_male_64x64.png)
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