Nur Unterordner umbenennen?
Hallo Zusammen,
kann ich in powershelll nur Unterordner umbennen?
zb. Pfad: D:\test\Ordner_1233\Akte1_1233
D:\test\Ordner_1233\Akte2_1233
Ergebnis: D:\test\Ordner_1233\Akte1
D:\test\Ordner_1233\Akte2
Da es sich hier ab D:\test\ um einige hundert Ordner handelt wäre es per Hand mehr als anstrengend.
Das Einzige wo man anfassen kann wäre bei dem String "Akte1" und "Akte2".
Suche in den Unterordnern nach den Ordnern Akte1 und Akte2, rename...... ?
Wäre doch was für Siddius
Vielen Dank.
LG Stefan
kann ich in powershelll nur Unterordner umbennen?
zb. Pfad: D:\test\Ordner_1233\Akte1_1233
D:\test\Ordner_1233\Akte2_1233
Ergebnis: D:\test\Ordner_1233\Akte1
D:\test\Ordner_1233\Akte2
Da es sich hier ab D:\test\ um einige hundert Ordner handelt wäre es per Hand mehr als anstrengend.
Das Einzige wo man anfassen kann wäre bei dem String "Akte1" und "Akte2".
Suche in den Unterordnern nach den Ordnern Akte1 und Akte2, rename...... ?
Wäre doch was für Siddius
Vielen Dank.
LG Stefan
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 1520801138
Url: https://administrator.de/contentid/1520801138
Ausgedruckt am: 25.11.2024 um 00:11 Uhr
14 Kommentare
Neuester Kommentar
Wäre doch was für Siddius face-wink
lol.Es scheint, dass der Fehler "Quell- und Ziel-Pfad dürfen nicht identisch sein" darauf hinweist, dass du versuchst, den Ordner in denselben Ordner umzubenennen, in dem er sich bereits befindet. Das kann in PowerShell zu einem Fehler führen.
Hier ist eine korrigierte Version deines Befehls, um dies zu vermeiden:
Get-ChildItem "D:\test" -Directory -Recurse -Filter "Akte 1*" | ForEach-Object { Rename-Item $_.FullName -NewName "Akte 1" }
Änderungen im Vergleich zu deinem ursprünglichen Befehl:
Verwendung von ForEach-Object um jeden gefundenen Ordner einzeln zu bearbeiten.
Der Rename-Item-Befehl verwendet $_ als Variable für das aktuelle Objekt (den gefundenen Ordner) und verwendet $_.FullName als Quellpfad.
Dieser Befehl sollte die Ordner mit dem Präfix "Akte 1" in "Akte 1" umbenennen, ohne dass der Fehler auftritt. Stelle sicher, dass du die Berechtigungen zum Umbenennen der Ordner hast und dass kein anderer Prozess auf die Ordner zugreift.
Moin.
What the fuck 🤣
https://tio.run/##fc1NCsIwEIbhvacYilAtpPWnN1AQN15AJKR2IKH5KcloEfXssS1dFn ...
All the best
pjumper
What the fuck 🤣
Get-ChildItem "D:\test\*\akte*_*" -Directory | rename-item -newname {$_.Name.split('_')[0]} -verbose
All the best
pjumper
Hi.
wenn [Test] statisch ist:
Mach aber vorher Backups deiner Files, bevor Du testest.
Gruß
wenn [Test] statisch ist:
# Pfad zur Datei
$dateipfad = "D:\[Test] Mustermann, Erich\[Test] Akte 1\NormalerOrdnername\"
# Neuer Dateiname ohne [Test]
$neuerDateiname = $dateipfad -replace '\[Test\]', ''
# Umbenennen der Datei
Rename-Item -Path $dateipfad -NewName $neuerDateiname -Force
Mach aber vorher Backups deiner Files, bevor Du testest.
Gruß
Get-ChildItem "D:\" -Directory -Recurse | ?{$_.Name -like '*[Test]*'} | sort {$_.FullName.length} -Descending | rename-item -newname {$_.Name -replace '\[Test\]\s*'} -verbose
Mach aber vorher Backups deiner Files, bevor Du testest.
Dafür gibt es den Parameter -whatif, damit lässt es sich auch gefahrlos testen 😉.Dafür gibt es den Parameter -whatif, damitblässt sich gefahrlos testen.
Vergessen, Danke.Wo käme hier ForEach-Object hin? Sonst funktioniert es tadelos face-smile
Versuch Dich etwas daran. So lernst Du auch aktiv dazu. Ich versuch's schon face-wink
Try harder or ask ChatGPT :D
Foreach ist hier überflüssig! Works out of the box mit allen Ordnern die [Test] enthalten ...
RTFM ...!
RTFM ...!