Windows 7 Dateinamen von alt auf neu übernehmen

xerxes333

gehört zum Inventar
Ich habe einige Hundert Dateiein neu gescannt, deren Dateinamen jetzt nur aus fortlaufenden Zahlen besteht. Ich möchte nun den Dateinamen von alten Dateien (mit schlechter Qualität) auf die neuen übernehmen. Ich kann sicherstellen, dass in je zwei Ordnern die exakte Zahl der Dateien und die Reihenfolge übereinstimmt.

Wie mache ich das am geschicktesten? Manuell ist dies bei der Anzahl eine Sisyphusarbeit! Gibt es ein Utility, dass den Namen einer alten Datei auf eine neue übertragen kann?

xerxes333
 
Wundert mich nicht, dass noch keine Antwort kam, denn ein Tool gibt es dafür meines Wissens nach nicht. Dazu müsste es ja den Inhalt der Dateien auf Gleichheit oder Ähnlichkeit überprüfen können, was aber unsicher und schwierig ist.
Du könntest dir zwar zwei Listen mit dem dir-Befehl erstellen und die in einer Batchdatei und dem rename-Befehl zusammenfassen (oder geschickter mit einer Liste und einer for-Anweisung für die numerischen Dateinamen), allerdings dürfte das noch länger dauern, als ein manuelles Umbenennen.

Ich kann sicherstellen, dass in je zwei Ordnern die exakte Zahl der Dateien und die Reihenfolge übereinstimmt.
Das kannst du aber nur sicherstellen, wenn du einen Dateimanager hast, der die Dateien auch unsortiert darstellen kann. Also genau so in der Reihenfolge, wie sie in der MFT oder FAT eingetragen sind bzw. physikalisch auf dem Datenträger liegen. In dem Fall wäre die Sache mit einer ausführbaren Batchdatei machbar.
Der Windows-Explorer kann das nicht, irgendeine Sortierung ist bei dem immer aktiv.

Eine Erleichterung könnte es jedoch sein, wenn du dir z.B. den freeCommander installierst, da dieser das Mehrfach-Umbenennen beherrscht. Damit wäre zumindest mal eine Art gruppenweises Umbenennen für Dateien möglich, deren Namen sehr ähnlich sind.
 
Danke für deine Antwort. Allmählich finde ich mich damit ab, alles manuell durchzuführen. Eine Frage noch: Ich kann alle alten und neuen Dateien gleichbleibend nummerieren, z.B. 200 - 300. Die "alten" haben dann den Namen 200xyz, 201zyx, etc. Die "neuen" heißen nur 200, 201, etc. Ich habe mich bisher so gut wie nie mit Batch-Scripts beschäftigt, könnte jedoch eine Schleife u.ä. hinbekommen. Ein "rename"-Kommando existiert auch. Mit welchem Kommando "lese" ich aber den Dateinamen der alten Datei 200xyz, um dann mit "rename" die Datei 200 entsprechend umzubenennen?


Gruß

xerxes333
 
Dafür benötigst du 2 Kommandos.

Zunächst erstellst du dir eine Dateiliste mit dem Befehl
dir [Verzeichnis] /b > DirList.tmp

Anschließend kannst du diese Liste mit find oder besser findstr auslesen und die Dateinamen einer Umgebungsvariablen zuordnen. Mit der arbeitest du dann weiter.

Ist alles fertig, kannst du die temporäre Dateiliste mit dem delete-Befehl im Batch-Skript wieder löschen lassen.

Hinweis: Mit dem Kommando und dem Parameter /? erhältst du in der Eingabeaufforderung eine Kurzbeschreibung des Befehls.
Beispiel: findstr /?

Allerdings ist der Kommandointerpreter (cmd.exe) von Windows bzw. dessen Batch-Skripts für solche Sachen wie Dateioperationen extrem umständlich zu handhaben. Ich selber arbeite daher bei solchen Aufgaben oder größeren Batch-Skripts schon lange nicht mehr mit ihm und müsste mich da erst wieder mit dessen rudimentärer Batch-Programmierung für solche Operationen wie deiner erneut vertraut machen.

Dafür empfehle ich die Freeware Take Command Console LE (TCC/LE).

Selbst in dieser kostenlosen Version ist dieser Kommandointerpreter wesentlich mächtiger als cmd.exe und 100%ig kompatibel zu ihm. Er beinhaltet eine Vielzahl von Funktionen, durch die das Skripten von Batchdateien sehr komfortabel ist und fast schon zu einer richtigen Programmierung wie in Hochsprachen wird. Dateioperation, Schleifen und vieles mehr werden damit zum Kinderspiel. Durch den großen Befehlsumfang ist zwar die Einarbeitungszeit in TCC/LE höher als beim Windows Kommandointerpreter, zahlt sich aber sehr schnell aus. Da du dich nach deiner Aussage eh noch nie so richtig damit beschäftigt hast und dich erst mal einarbeiten musst, wäre das jetzt eine gute Gelegenheit, gleich mit TCC/LE anzufangen.

Viel Spaß und Erfolg, :)
Norbert
 
Oben