Michaela112 Geschrieben 6. November 2021 Geschrieben 6. November 2021 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
_n4p_ Geschrieben 6. November 2021 Geschrieben 6. November 2021 Gibt es Gründe die gegen den Einsatz von PowerShell sprechen?
Michaela112 Geschrieben 6. November 2021 Autor Geschrieben 6. November 2021 (bearbeitet) 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 6. November 2021 von Michaela112
Thanks-and-Goodbye Geschrieben 6. November 2021 Geschrieben 6. November 2021 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.
_n4p_ Geschrieben 6. November 2021 Geschrieben 6. November 2021 vor einer Stunde schrieb Michaela112: da kam dann [..] beim starten nur eine blaue Konsole, ähnlich wie das cmd-Fenster. ja, genau … 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?
Michaela112 Geschrieben 6. November 2021 Autor Geschrieben 6. November 2021 (bearbeitet) @ _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 6. November 2021 von Michaela112
_n4p_ Geschrieben 6. November 2021 Geschrieben 6. November 2021 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
_n4p_ Geschrieben 6. November 2021 Geschrieben 6. November 2021 vor 2 Stunden schrieb Michaela112: Ja, genau wie in deinem Bild kam nur eine blaue Konsole. genau mehr als auf dem bild sieht man von der powershell auch nicht
Michaela112 Geschrieben 7. November 2021 Autor Geschrieben 7. November 2021 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... ^^
SoL_Psycho Geschrieben 7. November 2021 Geschrieben 7. November 2021 Sorry, aber "man" kann das. Oben steht sogar, wie es geht, siehe Beitrag von _n4p_. Du musst es nur adaptieren und umsetzen.
MartinSt Geschrieben 7. November 2021 Geschrieben 7. November 2021 vor 3 Stunden schrieb Michaela112: Aber was solls, dann habe ich halt Pech und man kann im 21. Jahrhundert eben keine Ordner automatisch umbennen. Aber zum Mars fliegen wir... ^^ Das liegt aber nicht an der Rakete sondern am Bediener der knapp die Himmelsrichtungen kennt.
allesweg Geschrieben 8. November 2021 Geschrieben 8. November 2021 Maximal Windows XP, du tippst die Pfadangabe mit ab. Wende dich an euren IT-Verantwortlichen. Bevor du noch versehentlich das Internet löscht... Leumast reagierte darauf 1
_n4p_ Geschrieben 8. November 2021 Geschrieben 8. November 2021 vor 21 Stunden schrieb Michaela112: Ich verstehe jetzt die 2. Zeile nicht. die zweite Zeile ist die beispielhafte Ausgabe die die "for" Anweisung darüber produziert
Michaela112 Geschrieben 8. November 2021 Autor Geschrieben 8. November 2021 (bearbeitet) @ 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: 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: 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 8. November 2021 von Michaela112
SoL_Psycho Geschrieben 8. November 2021 Geschrieben 8. November 2021 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...
MartinSt Geschrieben 8. November 2021 Geschrieben 8. November 2021 Nimm wie Chief Wiggum vorgeschlagen hat, ein fertiges Tool. Du verstehst nicht was du kopierst und tippst, du verstehst die Fehlermeldungen nicht und wirst beim ersten kleinen Problem scheitern, wenn bspw. Rechte auf ein Verzeichnis fehlen o.ä.
Thanks-and-Goodbye Geschrieben 8. November 2021 Geschrieben 8. November 2021 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?
allesweg Geschrieben 9. November 2021 Geschrieben 9. November 2021 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
Michaela112 Geschrieben 9. November 2021 Autor Geschrieben 9. November 2021 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
Empfohlene Beiträge