Zum Inhalt springen

Batch zum Umbenennen vieler Unterordner


Michaela112

Empfohlene Beiträge

Huhu ihr Lieben,

für die Arbeit benötige ich dringend eine Batch, die ich auf eine externe Festplatte lege und einfach nur anklicken brauch. Leider sind es dutzende Festplatten und jeweils tausende Ordner bzw. Unterordner. Sie beginnen und enden alle verschieden. Nur der mittlere Teil "X-Y Z" ist gleich und den muss ich auf die ebenfalls gleiche Bezeichnung "XYZ" ändern.

Die Unterordner sind alle so aufgebaut:

OrdneranfangX-Y ZOrdnerende

Nun sollen aber alle so heißen:

OrdneranfangXYZOrdnerende

Es soll also der Bindestrich und die Lücke weg. Leider sind im "Ordneranfang" und "Ordnerende" auch Bindestriche und Lücken, was die Sache wohl verkompliziert.

Folgendes habe ich schon probiert aber klappt nicht:

@echo off
Setlocal EnableDelayedExpansion
FOR /F "usebackq tokens=1,2,3 delims=X-Y*Z " %%A IN (`dir /ad /b "*X-Y*Z*"`) DO move "%%AX-Y%%BZ%%C" "%%AXYZ%%B"
pause

Auch viele anderen Sachen aus dem Netz scheiterten :(

Daher brauche ich dringend Hilfe und frue mich über jeden Ratschlag.

Liebe Grüße

Michaela112

Link zu diesem Kommentar
Auf anderen Seiten teilen

Huhu _n4p_ ,

ja, leider. Hier ist noch Win XP auf dem Rechner.

Denoch probierte ich PowerShell 1.0.0 aus, da kam dann, nach langer Suche wohin sich der Spaß installiert hat, beim starten nur eine blaue Konsole, ähnlich wie das cmd-Fenster.

Bei allen(!) neueren Versionen kam immer nur eine Meldung beim Start der msi-Datei, dass dieses Programm nicht für diese Plattform sei.

Trotzdem danke für den Tipp.

 

Bearbeitet von Michaela112
Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 2 Minuten schrieb Michaela112:

Hier ist noch Win XP auf dem Rechner.

Externe Festplatten kann man auch an modernere Betriebssysteme anschliessen.

Falls es mit Batch und Powershell nicht gehen sollte (was ich nicht glaube) kannst du dir ja mal https://www.heise.de/download/product/bulk-rename-utility-25762 anschauen.

Link zu diesem Kommentar
Auf anderen Seiten teilen

vor einer Stunde schrieb Michaela112:

da kam dann [..] beim starten nur eine blaue Konsole, ähnlich wie das cmd-Fenster.

ja, genau … 

image.png.f0128f0e6f2075e63e8b2fb7aa1d8022.png

 

vor 3 Stunden schrieb Michaela112:

move "%%AX-Y%%BZ%%C" "%%AXYZ%%B"

das sollte ein %%C sein am ende, oder? darüber hinaus, was ist denn das Problem mit diesem Konstrukt?

Link zu diesem Kommentar
Auf anderen Seiten teilen

@ _n4p_

Ja, genau wie in deinem Bild kam nur eine blaue Konsole.

vor 4 Stunden schrieb _n4p_:

das sollte ein %%C sein am ende, oder? darüber hinaus, was ist denn das Problem mit diesem Konstrukt?

Nun, da B ja wegfällt, da B die Lücke ist die weg soll, dachte ich, dass nach A eben B kommt. Aber auch wenn ich C nach A schreibe wie du es meinst, kommt der selbe Fehler: "Das System kann die angegebene Datei nicht finden."

Das Problem wird an dem rot markierten liegen:

@echo off
Setlocal EnableDelayedExpansion
FOR /F "usebackq tokens=1,2,3 delims=X-Y*Z " %%A IN (`dir /ad /b "*X-Y*Z*"`) DO move "%%AX-Y%%BZ%%C" "%%AXYZ%%B"
pause

Ach, hier gibt es keine Farben :( Nun es geht um das erste Sternchen, also das bei delims=X-Y*Z

Das habe ich eingesetzt, weil ja delims=X-Y Z

sowiso nicht geht, wegen der Lücke. :(

Auch mit Anführungsstrichen klappt es nicht: delims="X-Y Z", weil die Zeile bereits " enthält :(

 

@ Chief Wiggum

Huhu Chief Wiggum,

nun ein Rechner mit einem moderneren Betriebssystem steht mir nicht zur Verfügung.

Das Bulk Rename Utility habe ich erfolgreich runtergeladen.

Doch scheinbar ist es nur auf English, was mir Schwierigkeiten bereitet. Dennoch habe ich alle gewünschten Ordner im rechten Bereich markiert und bin oben auf Action und dann auf Rename gegangen, doch ironischerweise kommt die Meldung: There are no selected items that need renaming. Keine Ahnung was das Programm will. Mehr als markieren kann ich ja nicht tun. :(

Bearbeitet von Michaela112
Link zu diesem Kommentar
Auf anderen Seiten teilen

C:\test\lala>for /f "tokens=1,2,3 delims=X-Y*Z" %A in ('dir /ad /b "*X-Y Z*"') do move "%AX-Y Z%C" "%AXYZ%C"

C:\test\lala>move "LalaX-Y ZBlub" "LalaXYZBlub"
        1 Verzeichnis(se) wurde(n) verschoben.
C:\test\lala>for /f "tokens=1,2,3 delims=X-YZ" %A in ('dir /ad /b "*X-Y Z*"') do move "%AX-Y Z%C" "%AXYZ%C"

C:\test\lala>move "LalaX-Y ZBlub" "LalaXYZBlub"
        1 Verzeichnis(se) wurde(n) verschoben.

hab das zwar nicht innerhalb eines scriptes, aber das geht. einziger unterschied wäre das %%A

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ich verstehe jetzt die 2. Zeile nicht.

Ich nehme an, statt

C:\test\lala>move "LalaX-Y ZBlub" "LalaXYZBlub"

meintest du

FESTPLATTE:\>move "*X-Y Z*" "*XYZ*"

also mit Sternchen, richtig? Denn ich habe keine bekannten Ordnernamen, nur unbekannte.

Jedenfalls kommt bei der ersten Zeile diese Fehlemeldung (jetzt umgeschrieben mit deinen Werten):

Der Befehl "C:\test\lala" ist entweder falsch geschrieben oder konnte nicht gefunden werden.

Zugleich erstellt das Script eine Datei namens "for".

Du kannst das ja mal selbst in eine txt reinmachen, zu bat umbenennen, einen Ordner so nennen wie bei deinem Tipp und Datei doppelklicken...

Bei der 2. Zeile von dir kommt exakt die selbe Fehlermeldung.

Zugleich erstellt das Script eine Datei namens "move".

Alles recht komisch.

 

Aber was solls, dann habe ich halt Pech und man kann im 21. Jahrhundert eben keine Ordner automatisch umbennen. Aber zum Mars fliegen wir... ^^

Link zu diesem Kommentar
Auf anderen Seiten teilen

@ SoL_Psycho

Hallo erstmal. Bitte siehe mein Beitrag über deinem...

@ MartinST

Hallo erstmal. Ja, sicherlich liegts an mir, deswegen suche ich ja auch Hilfe in diesem Forum. Aber Postings die nur Spam enthalten, bringen niemanden weiter...

@ allesweg

Hallo erstmal. Ich tippe keine Pfadangaben ab. Vielleicht mal richtig lesen, was ich über deinem Beitrag schrieb (das in Klammern). Ich kann wohl schlecht Kundendaten hier veröffentlichen. Daher habe ich die Werte wie _n4p_ genutzt mit den lala usw.

@ _n4p_

Huhu _n4p_,

nun, ich habe das nun verstanden mit der 2. Zeile^^

Ich habe es nun exakt wie du gemacht.

Ich habe auf C: einen Ordner TEST angelegt , in diesem habe ich den Ordner lala angelegt, und wiederum in diesem den Ordner LalaX-Y ZBlub.

Also so: C:\Test\lala\LalaX-Y ZBlub

Direkt unter C:\ habe ich eine Batch erstellt und per copy & paste die Zeile von dir eingefügt:

C:\test\lala>for /f "tokens=1,2,3 delims=X-YZ" %A in ('dir /ad /b "*X-Y Z*"') do move "%AX-Y Z%C" "%AXYZ%C"

Und eine Pause unten drunter.

 

Hier das Ergebnis:

lalarnjk0.jpg

Und direkt unter C:\ wird eine endungslose Datei namens "for" erstellt.

Ich bin da nun ratlos. Kenne das mit dem ">" eigentlich nur, um einen Text in eine txt zu schreiben, zB. so: dir>Dateiname.txt (dadurch wird eine txt erzeugt die als Inhalt alle Verzeichnisse usw. enthält).

Es scheint also "lala" für eine ausführbare Datei zu halten, welche es unter C:\TEST natürlich nicht gibt.

Auch mit einem "@echo off" als 1. Zeile klappts nicht.

Hier ein Bild mit dem "@echo off" und rechts sieht man auch die erstelle "for"-Datei:

lala2dsjfg.jpg

Vielleicht weißt du da weiter?

Auch sollte im Befehl selbst ja kein C:\TEST\lala vorkommen, da die Ordnernamen ja verschieden und somit unbekannt sind, bis auf der mittlerer Teil "X-Y Z". Oder irre ich mich?^^

 

Liebe Grüße

 

 

Bearbeitet von Michaela112
Link zu diesem Kommentar
Auf anderen Seiten teilen

Auch wenn ich langsam glaube, dass hier getrollt wird:

C:\test\lala>for /f "tokens=1,2,3 delims=X-YZ" %A in ('dir /ad /b "*X-Y Z*"') do move "%AX-Y Z%C" "%AXYZ%C"

Du musst natürlich das C:\test\lala> entfernen. Das ist nur die Pfadangabe, in der _n4p_ das ausgeführt hat.

Also:
for /f "tokens=1,2,3 delims=X-YZ" %A in ('dir /ad /b "*X-Y Z*"') do move "%AX-Y Z%C" "%AXYZ%C"

Im übrigen war sogar in Deinem "Copy/Paste" noch ein Fehler drin, schau mal, wo Dein For stand...

Und ich empfehle Dir, erstmal die Grundlagen zu lernen, die Dir ganz offensichtlich fehlen. Ohne die Grundlagen schaffst Du es ja offensichtlich nicht mal, für dich vorbereitete Lösungen zu nutzen.
Bitte, bitte lese Dich in Grundlagen ein, sonst wird die Ausbildung ein ganz böses Ende nehmen
...

Link zu diesem Kommentar
Auf anderen Seiten teilen

Am 6.11.2021 um 19:51 schrieb Michaela112:

Doch scheinbar ist es nur auf English, was mir Schwierigkeiten bereitet.

Dann solltest du das als erstes ändern. Man muss nicht verhandlungssicher Englisch reden können, aber ein englischsprachiges Programm oder andere englischsprachige Fachinformationen sollten dir keine Probleme bereiten.

Am 6.11.2021 um 19:51 schrieb Michaela112:

Dennoch habe ich alle gewünschten Ordner im rechten Bereich markiert und bin oben auf Action und dann auf Rename gegangen, doch ironischerweise kommt die Meldung: There are no selected items that need renaming. Keine Ahnung was das Programm will. Mehr als markieren kann ich ja nicht tun.

Aua... im unteren Bereich hast du drölfhundert Auswahlfelder für die entsprechenden Manipulationen am Dateinamen. Da musst du schon mit arbeiten. Immerhin zeigt dir das Programm immer eine Preview der Auswirkungen deiner Einstellungen. Woher soll das Programm sonst wissen, was es zu machen hat?

Link zu diesem Kommentar
Auf anderen Seiten teilen

Am 7.11.2021 um 11:51 schrieb Michaela112:

Der Befehl "C:\test\lala" ist entweder falsch geschrieben oder konnte nicht gefunden werden.

... kommt natürlich nicht von einer Fehleingabe durch dich. Nein.

vor 10 Stunden schrieb SoL_Psycho:

Auch wenn ich langsam glaube, dass hier getrollt wird:

^this

Link zu diesem Kommentar
Auf anderen Seiten teilen

Psycho, das for steht in meinem Bild an der selben Stelle. In einer Ausbildung befinde ich mich nicht.

An den Admin: Es tut mir sehr leid, dass ich nicht wie ihr in der Schule Englishc hatte. Sorry. Und zwecks den von dir genannten drölfhundert Einstellmöglichkeiten ... ja, ich weiß, die sehe ich nicht, weil ich blind bin.... Oje oje. Da steht nunmal nichts von Rename!

Es tut mir auch leid hier eine Frage gestellt zu haben.

Matin, ICH verstehe nicht was ich tippe? Nun deswegen bin ich doch hier. Aber wenn n4p einen Pfad angibt, da kann ich doch nichts für. Im Threadtitel und in meiner Frage geht es um eine Batch!

Allesweg, keine Ahnung was du meinst.... Natürlich kommt das von mir, es sitzt ja nur ich am Rechner!

Hie rmal die Ergebnisse der letzten Tests:

 

So wie es lolPsycho schrieb, also mit dem da:

for /f "tokens=1,2,3 delims=X-YZ" %A in ('dir /ad /b "*X-Y Z*"') do move "%AX-Y Z%C" "%AXYZ%C"

Schließt sich das cmd-Fenster sofort, obwohl ich eine Pause eingefügt hab. Bitte vorher selbst testen, das habe ich schon 2 mal geschrieben. Bevor man so einen Blödsinn postet.

Also ich bin raus.

Ich muss schaue mich nach einem anderen Board um, wo Ordnung herrscht.

Trotzdem danke für alles!

 

Grüße

Link zu diesem Kommentar
Auf anderen Seiten teilen

Gast
Dieses Thema wurde nun für weitere Antworten gesperrt.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...