CMD Script Teile eines Verzeichnis umbenennen
Guten morgen,
ich versuche ein CMD Script zu erstellen welches mir Verzeichnisse umbenennt:
Verzeichnisse können so aussehen:
AAA.BBB.CCC.DDD.EEE.FFF-GGG.HHH
AAA.BBB.CCC-DDD
AAA.BBB.CCC.DDD.EEE.FFF.GGG.HHH-III-JJJ
jedenfalls sind die Texte mit einem "." bzw "-" getrennt. ( und AAA / BBB etc. sind Platzhalter )
Wenn z.b. .DDD gefunden wird, benenne das Verzeichnis um, ohne DDD.
AAA.BBB.CCC.EEE.FFF-GGG.HHH
AAA.BBB.CCC-DDD
AAA.BBB.CCC.EEE.FFF.GGG.HHH-III-JJJ
Das ich die Verzeichnisse mit dir /B /AD in eine Datei umlenken kann, habe ich schon hin bekommen,
wie gehe ich jetzt vor das ich jeden Platzhalter in eine Variable bekomme und ggf. die Platzhalter vergleiche mit dem Wert den es löschen soll
Hoffe das war verständlich ausgedrückt.
Gruß
ich versuche ein CMD Script zu erstellen welches mir Verzeichnisse umbenennt:
Verzeichnisse können so aussehen:
AAA.BBB.CCC.DDD.EEE.FFF-GGG.HHH
AAA.BBB.CCC-DDD
AAA.BBB.CCC.DDD.EEE.FFF.GGG.HHH-III-JJJ
jedenfalls sind die Texte mit einem "." bzw "-" getrennt. ( und AAA / BBB etc. sind Platzhalter )
Wenn z.b. .DDD gefunden wird, benenne das Verzeichnis um, ohne DDD.
AAA.BBB.CCC.EEE.FFF-GGG.HHH
AAA.BBB.CCC-DDD
AAA.BBB.CCC.EEE.FFF.GGG.HHH-III-JJJ
Das ich die Verzeichnisse mit dir /B /AD in eine Datei umlenken kann, habe ich schon hin bekommen,
wie gehe ich jetzt vor das ich jeden Platzhalter in eine Variable bekomme und ggf. die Platzhalter vergleiche mit dem Wert den es löschen soll
Hoffe das war verständlich ausgedrückt.
Gruß
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 665457
Url: https://administrator.de/forum/cmd-script-teile-eines-verzeichnis-umbenennen-665457.html
Ausgedruckt am: 04.04.2025 um 10:04 Uhr
4 Kommentare
Neuester Kommentar
Moin,
CMD ist eine tote Sprache. Wenn du diese bis heute noch nicht beherrschst, solltest du auch erst gar nicht mehr versuchen, sie dir anzueignen.
Heute nimmt man für sowas Powershell.
Sorry Uwe, ich klau mal kurz:
Gruß Thomas
CMD ist eine tote Sprache. Wenn du diese bis heute noch nicht beherrschst, solltest du auch erst gar nicht mehr versuchen, sie dir anzueignen.
Heute nimmt man für sowas Powershell.
$Quelle = 'C:\Test'
$Dirs = Get-ChildItem -Directory -Path $Quelle
Foreach ($Dir in $Dirs) {
Rename-Item -Path $Dir.Fullname -NewName ($Dir.Name -Replace '\.DDD')
}
Sorry Uwe, ich klau mal kurz:
Zitat von @colinardo:
Powershell Leitfaden für Anfänger
Pflichtlektüre
- Kapitel 1: Erste Schritte mit PowerShell
- Kapitel 2: Das Hilfesystem
- Kapitel 3: Entdecken von Objekten, Eigenschaften und Methoden
- Kapitel 4: Einzeiler und die Pipeline
- Kapitel 5: Formatierung, Aliase, Anbieter, Vergleich
- Kapitel 6: Flusssteuerung
- Kapitel 7: Arbeiten mit WMI
- Kapitel 8: PowerShell-Remoting
- Kapitel 9: Funktionen
- Kapitel 10: Skriptmodule
- Anhang A: Hilfesyntax
Erweiterte Grundlagen
- Alles, was Sie schon immer über Arrays wissen wollten
- Alles, was Sie schon immer über Hashtabellen wissen wollten
- Was Sie schon immer über PSCustomObject wissen wollten
- Alles, was Sie schon immer über die Variablenersetzung in Zeichenfolgen wissen wollten
- Alles, was Sie schon immer über die IF-Anweisung wissen wollten
- Alles, was Sie schon immer über die switch-Anweisung wissen wollten
- Alles, was Sie schon immer über Ausnahmen wissen wollten
- Alles, was Sie schon immer über $null wissen wollten
- Alles, was Sie schon immer über ShouldProcess wissen wollten
- Verwenden von Erweiterung mit der TAB-TASTE
Zusätzliche Ressourcen
Gruß Thomas
Zitat von @twistuba:
aber nichts desto trotz, auch wenn CMD tot ist, für das 1x im Jahr wenn ich ein Batch brauche, reicht mir CMD vollkommen aus.
Ganz ehrlich, falscher Ansatz. Auch wenn CMD auf den ersten Blick simpler erscheinen mag - dieser Blick trügt gewaltig. CMD ist nicht nur in den Funktionen sehr eingeschränkt, es auch um einiges schwieriger zu erlernen.aber nichts desto trotz, auch wenn CMD tot ist, für das 1x im Jahr wenn ich ein Batch brauche, reicht mir CMD vollkommen aus.
Powershell ist, wenn man erst einmal den Anfang gemacht hat, so ziemlich die am leichtesten zu erlenende Sprache überhaupt - aber vorsicht, macht süchtig! 😁
nur noch kurz eine Frage zu deinem Script - was mache ich wenn ich einen teil umbenennen möchte anstatt löschenn?
technisch gesehen tut es das bereits, es ist halt nur nichts angegeben, worin er das umbenennen soll - daher benennt er das einfach in nichts um.Die zu ersetzende Zeichenkette muss also lediglich ergänzt werden, z.B. wird durch folgendes .DDD in .YYY umbenannt:
$Quelle = 'C:\Test'
$Dirs = Get-ChildItem -Directory -Path $Quelle
Foreach ($Dir in $Dirs) {
Rename-Item -Path $Dir.Fullname -NewName ($Dir.Name -Replace '\.DDD','.YYY')
}

Kleine Verbesserung damit es nicht Fehlermeldungen hagelt bei Ordnern die den Begriff nicht enthalten, denn einen Ordner in den selben Namen umzubenennen wird ja nicht klappen ...
Gruß w.
$Quelle = 'C:\Test'
Get-ChildItem -Directory -Path $Quelle | ?{$_.Name -match '\.DDD'} | rename-item -NewName {$_.Name -replace '\.DDD','.YYY'}