For each FILE In FOLDER sortiert Dateien nicht!

  • VBScript

Es gibt 5 Antworten in diesem Thema. Der letzte Beitrag () ist von peterfido.

    For each FILE In FOLDER sortiert Dateien nicht!

    Hallo Leute,

    folgendes Szenario:
    -------------------

    Ein Ordner, 2000 .jpg Dateien drin, (Bild-Sequenz)
    jetzt soll das Script jede 10. Datei nehmen und in einen anderen Ordner kopieren so das ich am Ende 200 Dateien haben müsste.

    DAS SCRIPT STEHT SOWEIT!

    Mein Problem:
    -------------
    Es kopiert die Dateien unsortiert,
    sodass ich am ende NICHT folgendes vorfinde:

    0010.jpg
    0020.jpg
    0030.jpg
    .....

    SONDERN so etwas:

    0010
    0012
    0032
    ..etc.

    Also er liest sie nicht sortiert aus,
    sondern nimmt sich eine x-beliebige Datei vor.
    Die Dateinamen sind aufsteigend nummeriert, also daran kanns nicht liegen
    (Picture_0001, Picture_0002, etc.)

    Ich bitte euch dringlichst um eure Hilfe, das ist für die Arbeit un mein Cheffè wartet drauf :(

    Hier noch der Source-Code:

    Quellcode

    1. Dim fso, path, path2, getdir, folder, file, trigger, cRoutine, i
    2. Set fso=CreateObject("Scripting.FileSystemObject")
    3. path = "C:\Test-Area\Quelle\"
    4. path2 = "C:\Test-Area\Ziel\"
    5. Set getdir = fso.GetFolder(path)
    6. Set folder = getdir.Files
    7. trigger = 5
    8. zaehler = 0
    9. For each file In folder
    10. zaehler = zaehler + 1
    11. if zaehler = trigger Then
    12. cRoutine = fso.CopyFile (file, path2)
    13. zaehler = 0
    14. End if
    15. Next



    Viele Grüße, Michael.
    Wenn die Dateien durchnummeriert sind, dann verwende doch den Dateinamen.
    Statt "For each file in folder " hast du mit

    Visual Basic-Quellcode

    1. For q=0 to 2000 step 10

    die Zahl q in Zehnerschritten. Dies in den Dateinamen eingebaut sollte deine Lösung sein.
    Vielen Dank für die Antworten!
    Bei dem letzten blicke ich nicht so ganz durch, bzw. weis ich nicht wie ich das auf vbs übertragen soll ?(

    Also gehen wir mal von der For q step Schleife aus...

    Das heißt, ich müsste dann den Dateinamen der Dateien auslesen,
    dann einen array mit allen namen erstellen, und dann aus dem array heraus die Dateien per Schleife kopieren?!

    Ich bin da gerade etwas überfragt und weis nicht ganz wie ich das implementieren soll 8|

    Zudem sei gesagt das ich nicht der vbs pro bin..

    Eizza schrieb:

    Ich bitte euch dringlichst um eure Hilfe, das ist für die Arbeit un mein Cheffè wartet drauf


    Im Zweifel Chef fragen, wie es geht, bzw von ihm zeigen lassen...

    Die Dateien werden nach der Reihenfolge im Inhaltsverzeichnis des Dateisystems durchgegangen. Wobei diese nicht unbedingt nach der angezeigten, bereits alphabetisch sortierten Reihenfolge ist. Also alle Dateinamen einlesen, dann alphabetisch sortieren und dann mit der Schleife arbeiten.
    Gruß
    Peterfido

    Keine Unterstützung per PN!