twistuba
Goto Top

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ß

Content-Key: 665457

Url: https://administrator.de/contentid/665457

Ausgedruckt am: 29.03.2024 um 15:03 Uhr

Mitglied: TK1987
TK1987 07.04.2021 aktualisiert um 11:56:57 Uhr
Goto Top
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.
$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:

Gruß Thomas
Mitglied: twistuba
twistuba 07.04.2021 um 13:06:36 Uhr
Goto Top
Danke, so schnell habe ich gar nicht mit einer Antwort gerechnet ..
Funktioniert auch, prima.

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.
Anders wäre es wenn ich täglich programmieren müsste.


nur noch kurz eine Frage zu deinem Script - was mache ich wenn ich einen teil umbenennen möchte anstatt löschenn?

Gruß
Mitglied: TK1987
Lösung TK1987 07.04.2021 um 13:33:07 Uhr
Goto Top
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.
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')  
}
Mitglied: 148121
Lösung 148121 07.04.2021 aktualisiert um 14:45:44 Uhr
Goto Top
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 ...
$Quelle = 'C:\Test'  
Get-ChildItem -Directory -Path $Quelle | ?{$_.Name -match '\.DDD'} | rename-item -NewName {$_.Name -replace '\.DDD','.YYY'}  
Gruß w.