Suche jemanden mit Ahnung von Batchdateien

    • habi5586
      habi5586
      Bronze
      Dabei seit: 07.09.2005 Beiträge: 1.532
      und zwar geht es darum... ich habe einen Ordner mit ca 3000 Bildateien. bei ca 1200 davon, muss ich ein H_ vor den alten Dateinamen setzten. Welche Dateien das sind, kann ich anhand einer txt datei sehen.
      Gibt es eine Möglichkeit
      a) per Batchdatei, direkt die dateien umzubennen?
      oder aber
      b) per Batchdatei die Dateien die umbenannt werden sollen, in einen anderen Ordner zu verschieben.

      Dabei wäre es kein Problem, wenn da zu jeder Datei die ich brauche der Name auftaucht, da ich diese ja schon in einer txt Datei habe und so per copy&paste arbeiten kann.
  • 5 Antworten
    • netsrak
      netsrak
      Gold
      Dabei seit: 11.03.2006 Beiträge: 36.826
      Lad dir den Total Commander von http://www.ghisler.com der hat eine eingebaute Mehrfach Datei Umbenenn Funktion und ist auch sonst ein Rundum Glücklich Paket.
    • Temar
      Temar
      Bronze
      Dabei seit: 14.07.2006 Beiträge: 536
      Original von habi5586
      und zwar geht es darum... ich habe einen Ordner mit ca 3000 Bildateien. bei ca 1200 davon, muss ich ein H_ vor den alten Dateinamen setzten. Welche Dateien das sind, kann ich anhand einer txt datei sehen.
      Wie ist denn das Format der Textdatei - also wie sind darin die Daten abgespeichert und was steht da drin? Nur die Namen Zeile per Zeile?


      Gibt es eine Möglichkeit
      a) per Batchdatei, direkt die dateien umzubennen?
      oder aber
      b) per Batchdatei die Dateien die umbenannt werden sollen, in einen anderen Ordner zu verschieben.
      a) Ja
      b) Ja


      Dabei wäre es kein Problem, wenn da zu jeder Datei die ich brauche der Name auftaucht
      Versteh ich nicht, was du damit sagen willst.

      Gruss,
      Alex
    • habi5586
      habi5586
      Bronze
      Dabei seit: 07.09.2005 Beiträge: 1.532
      wenn die batchdatei z.B. so aussehen muss

      name xyz.jpg to H_xyz.jpg

      wovon ich ausgehe, da die namen ganz unterschiedlich sind. Aber so eine Batchdatei wäre relativ schnell zu erstellen, da ich ja die namen

      xyz.jpg H_xyz.jpg schon in einer txt datei stehen habe



      das format ist atm etwas wirr, ließe sich aber auf

      originalname neuername

      problemlos reduzieren


      achja, @totalcommander. der bringt mir so erstmal nichts, da ich in dem ordner dateien habe, die umbennant werden müssen und einige, die nicht umbenannt werden müssen
    • Temar
      Temar
      Bronze
      Dabei seit: 14.07.2006 Beiträge: 536
      Original von habi5586
      das format ist atm etwas wirr, ließe sich aber auf
      originalname neuername
      problemlos reduzieren
      Hab mal was zusammengehackt, was nur die Originalnamen benötigt. Einfach eine Datei, in der in jeder Zeile der Name der Datei steht, die umbenannt werden soll. Keine Leerzeichen davor oder danach einfügen und keine vollständigen Pfadangaben!!

      Format:
      ----------------
      datei1.png
      datei2.png
      ----------------

      Aufruf: myrename.cmd <prefix> < Liste.txt
      Beispiel: myrename.cmd "H_" < Liste.txt

      Skript: myrename.cmd
      @echo off
      REM
      REM Aufruf: myrename.cmd <prefix> < <txt-datei>
      REM
      REM <txt-datei> enthaelt die Dateinamen der Dateien, die mit dem
      REM Prefix <prefix> versehen werden sollen. Jeder Dateiname muss
      REM in einer einzelnen Zeile stehen. Die Dateinamen duerfen keine
      REM Pfadangaben enthalten. Das Skript muss aus dem Verzeichnis
      REM aufgerufen werden, in dem auch die Dateien liegen, die umbenannt
      REM werden sollen.
      REM
      REM Beispiel:
      REM ---------
      REM
      REM Textdatei "Liste.txt":
      REM ----------------------------------
      REM datei1.png
      REM datei2.gif
      REM datei234.jpg
      REM ----------------------------------
      REM
      REM Neues Prefix der Dateien: "h_"
      REM
      REM Aufruf: myrename "h_" < Liste.txt
      REM
      REM
      REM Bilder sollen in ein anderes Verzeichnis verschoben werden: "c:\bilder\"
      REM Der Pfad muss dabei mit einem '\' enden!
      REM
      REM Aufruf: myrename "c:\bilder\" < Liste.txt
      REM
      REM
      REM Bilder sollen verschoben werden und mit dem Prefix "h_" versehen werden.
      REM
      REM Aufruf: myrename "c:\bilder\h_" < Liste.txt
      REM

      set prefix=%~1
      set lastfile=

      :readnext
      set /p infile=

      if "%infile%"=="%lastfile%" goto end
      set lastfile=%infile%

      echo Renaming "%infile%" to "%prefix%%infile%"...
      move "%infile%" "%prefix%%infile%"

      goto readnext


      :end
      echo All Done.

      ACHTUNG: Ich hab das Skript in 2 Mins zusammengehackt und nicht gross getestet. Es besteht also die Möglichkeit, dass es all deine Daten schrottet. Am besten du backupst deinen ganzen Bilder-Ordner vorher.
    • habi5586
      habi5586
      Bronze
      Dabei seit: 07.09.2005 Beiträge: 1.532
      jo, hab den ordner eh auf cd (: aber ich probier das mal aus und hoffe, dass es funktioniert

      jo, habs ausprobiert und das hat wunderbar funktioniert (:
      evtl hätte ich noch eine bitte an dich (:
      kannst du evtl noch was einbauen, dass dabei eine txt datei erstellt wird, in die alle Dateien eingetragen werden, die nicht verschoben werden können, weil sie nicht vorhanden sind?
      habe nämlich gerade festgestellt, dass es nicht zu jeder datei die in der txt steht eine Bilddatei gibt und nun muss ich noch alle Bilddateien, die umbenannt werden sollen, aber nicht vorhanden sind in eine txt datei schreiben und das ist bei der Menge von Hand recht kompliziert
      wahlweise wäre auch ein Programm oder batchdatei ganz gut, die 2 txt dateien miteinander vergleichen kann

      edit: thx (: brauch nichts mehr, ultraedit konnte 2 Listen abgleichen und die unterschiede in einer neuen txt datei speichern (:

      danke nochmal für das großartige Programm!!!