[Batch/Bash] Dateien nach dateinamen in Ordner und Unterordner verschieben.

Dieses Thema im Forum "Programmierung & Entwicklung" wurde erstellt von Der_Skill0r, 2. September 2009 .

Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. 2. September 2009
    Dateien nach dateinamen in Ordner und Unterordner verschieben.

    Ich muss eine Menge .zip-Dateien nach folgendem Schema in Ordner und Unterordner verschieben:


    Zip-Datei: 0103_1017_2

    0103 ist ein Ordner, der den Ordner 10 beinhaltet.

    Nach diesem Schema sind noch mehr Dateien vorhanden.

    Der rote teil des Dateinamens steht für den Ordner, der Blaue für den Entsprechenden Unterordner, die letzten paar Zeichen sind unwichtig.

    Die Dateien und die Ordner sind im Gleichen Pfad untergebracht.

    Jetzt bräuchte ich eine Möglichkeit das Ganze schnell und automatisch zu machen, da 1900 Dateien von Hand verschieben ziemlich umständlich und zeitaufwendig ist.:baby:

    Gibt es da eine Lösung mit VBS oder Batch? wenn nicht, womit sonst?

    BWs gehen natürlich raus
     
  2. 2. September 2009
    AW: Dateien nach dateinamen in Ordner und Unterordner verschieben.

    Grundsätzlich kannst du das mit jeder Programmiersprache machen. Am besten sind dafür jedoch Skriptsprachen geeignet. Ich denke über mehr oder weniger umständliche Wege kann man es auch mit einem Batch-Skript machen, da bin ich nicht so bewandert. Da ich meist in C++ programmiere, würde ich es darin lösen. Das wäre aber ein Overkill, du könntest es ja mal in Python/Perl oder sogar in PHP versuchen. ;-)

    Vorgehen ist klar:
    1) Alle Dateinamen der .zip Dateien im current Verzeichnis einlesen und in Array/Vector speichern
    2) Jeden Eintrag im Array durchgehen
    2.1) Eintrag extrahieren ("_" kannst du als Token nehmen)
    2.2) per system("mkdir token[0]"); Verzeichnis anlegen (je nach Sprache unterschiedlich) (falls Verzeichnis schon da ist, überspringen)
    2.3) Unterverzeichnis anlegen nach selben Schema (substr(token[1], 0, 2))
    2.4) Den Eintrag in das neue Unterverzeichnis per System-Befehl kopieren/verschieben
    2.5) gegebenfalls Dateiname umbenennen

    Edit: Bash Lösungen sind natürlich auch möglich. Mittels "ls -x | grep .zip" kannst du in einer for-Schleife jeden Dateinamen durchgehen und z.B. per awk/grep die nötigen Informationen zum Verschieben extrahieren. Inwiefern man das auf ein Batch-Skript anwendet, müssen dir andere sagen.
     
  3. 2. September 2009
    AW: Dateien nach dateinamen in Ordner und Unterordner verschieben.

    Danke

    Ich werds mal in Perl probieren, ist die Sprache in der ich noch am meisten kann

    falls schwierigkeiten auftreten melde ich mich nochmal

    BW ist raus

    Edit 1: Hat geklappt, Danke nochmals
    Edit 2: Ist erledigt, closed^^
     
  4. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.