Files fortlaufend benennen

  • Hallo zusammen

    Ich habe folgendes Script geschrieben(danke nochmasl ojo für deine Hilfe)

    Spoiler anzeigen
    [autoit]

    #Region ;**** Directives created by AutoIt3Wrapper_GUI ****
    #AutoIt3Wrapper_icon=..\icon\yn.ico
    #EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
    #include <file.au3>

    [/autoit] [autoit][/autoit] [autoit]

    ;Variabeln
    Global $movedir = "t:\test2\"
    Global $Path2 = "t:"

    [/autoit] [autoit][/autoit] [autoit]

    ;=> Anfang Script
    MsgBox(0,"Wilkommen","Das Skript erstellt ein Netzlaufwerk und zieht alle Bilder zusammen",10)

    [/autoit] [autoit][/autoit] [autoit]

    $netuseX = DriveMapAdd($Path2,"\\192.168.99.47\cam",8)
    IF $netuseX = 0 Then
    MsgBox (0,"Achtung", "Es ist folgender Fehler aufgeteten. @Errormeldung: " &@error)
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    ;Starte dir Dos Befehl mit Parameter /s (Unterverzeichnisse) /b (einfaches Format) und speichere in Datei kamera_jpg.txt im Scriptverzeichnis
    ;warte auf Beendigung
    RunWait (@ComSpec & " /c dir t:\test\*.jpg /s /b >" & @ScriptDir & "\kamera_jpg.txt")
    ;zeige Textdatei und warte auf ende von notepad
    ShellExecuteWait ("notepad.exe", @ScriptDir & "\kamera_jpg.txt")
    ;Öffne Datei im Read Mode
    $file = FileOpen (@ScriptDir & "\kamera_jpg.txt", 0)
    ;Schleife von 1 bis Zeilenanzahl von Datei
    For $i = 100000 To $i+_FileCountLines (@ScriptDir & "\kamera_jpg.txt")
    ;lies Zeile in Variable
    $line = FileReadLine ($file, $i)
    ;Kopiere, wenn Datei nicht info.jpg und benenne um
    If Not StringInStr ($line, "info.jpg") Then FileMove($line, $movedir & $i & ".jpg")
    Next
    ;schliesse Datei
    FileClose ($file)
    MsgBox(0,"Erfolg!","Dateien wurden erfolgreich kopiert.")

    [/autoit]

    Das problem ist folgender Codeteil.

    [autoit]

    For $i = 100000 To $i+_FileCountLines (@ScriptDir & "\kamera_jpg.txt")
    ;lies Zeile in Variable
    $line = FileReadLine ($file, $i)
    ;Kopiere, wenn Datei nicht info.jpg und benenne um
    If Not StringInStr ($line, "info.jpg") Then FileMove($line, $movedir & $i & ".jpg")
    Next

    [/autoit]

    Ich woltte nun das die Bilder von 100000 an fortlaufend nummerierd werden, aber das funktioniert
    irgendwie nicht, weis aber nicht wiso. kann mir jemand vlt bei dem Problem helfen?

    So long
    Storyteller

    Edit: kamera_jpg.txt angehängt.

  • Kannst du bitte die Kamera_jpg.txt anhängen, dann kann ich mir die Sache ein wenig besser vorstellen...

    Spoiler anzeigen

    Grundkenntnisse in: C++, JavaScript
    Sehr gute Kenntnisse: PHP, JAVA, C und näturlich AutoIt


    Klaviatur, Anhang UDF, GDI+ Mühle

    Zitat

    "Wenn einen um 20h der Pizzadienst anruft und fragt, ob man's nur vergessen hat und ob man das gleiche
    möchte wie immer -- dann sollte man sein Bestellverhalten evtl überdenken"

  • Hallo

    mach es so:

    [autoit]

    For $i = 1 to _FileCountLines (@ScriptDir & "\kamera_jpg.txt")
    ;lies Zeile in Variable
    $j = $i+100000
    $line = FileReadLine ($file, $i)
    ;Kopiere, wenn Datei nicht info.jpg und benenne um
    If Not StringInStr ($line, "info.jpg") Then FileMove($line, $movedir & $j & ".jpg")
    Next

    [/autoit]

    mfg (Auto)Bert

  • Ich woltte nun das die Bilder von 100000 an fortlaufend nummerierd werden

    Sowit ich das verstanden habe soll ja erst ab Zeile 100000 an nummeriert werden(Kann mir aber das mit den 100000 Zeilen auch nicht so ganz vorstellen)...
    Also eventuell so:

    [autoit]

    For $i = 1 to _FileCountLines (@ScriptDir & "\kamera_jpg.txt")
    ;lies Zeile in Variable
    $j = $i+100000
    $line = FileReadLine ($file, $j)
    ;Kopiere, wenn Datei nicht info.jpg und benenne um
    If Not StringInStr ($line, "info.jpg") Then FileMove($line, $movedir & $i & ".jpg");Einfach nur die beiden Variablen vertauscht...
    Next

    [/autoit]
    Spoiler anzeigen

    Grundkenntnisse in: C++, JavaScript
    Sehr gute Kenntnisse: PHP, JAVA, C und näturlich AutoIt


    Klaviatur, Anhang UDF, GDI+ Mühle

    Zitat

    "Wenn einen um 20h der Pizzadienst anruft und fragt, ob man's nur vergessen hat und ob man das gleiche
    möchte wie immer -- dann sollte man sein Bestellverhalten evtl überdenken"

    Einmal editiert, zuletzt von Cartan12 (16. März 2010 um 15:56)

  • Wo definierst du die Variable $ij ?
    Wenn du dafür $j meintest dann kommt es unweigerlich zum Überlauf da die Zeilennummer ja nicht größer werden kann als die Gesamtanzahl der Zeilen (_FileCountLines).
    Das wäre aber der Fall da du auf $i immer etwas addierst und das würde die Grenzen der Datei überschreiten.

    Edit: Ich muss mich korrigieren - wenn $file nicht der kamera_jpg.txt entspricht könnte es theoretisch klappen aber ich denk mal es ist wirklich nur der Fehler das die 100000 nicht abgezogen wurden.

  • Variable $ij???

    edit: Oh, seh gerade, dass ich mich vertippt hatte :S

    Spoiler anzeigen

    Grundkenntnisse in: C++, JavaScript
    Sehr gute Kenntnisse: PHP, JAVA, C und näturlich AutoIt


    Klaviatur, Anhang UDF, GDI+ Mühle

    Zitat

    "Wenn einen um 20h der Pizzadienst anruft und fragt, ob man's nur vergessen hat und ob man das gleiche
    möchte wie immer -- dann sollte man sein Bestellverhalten evtl überdenken"

  • Sowit ich das verstanden habe soll ja erst ab Zeile 100000 an nummeriert werden(Kann mir aber das mit den 100000 Zeilen auch nicht so ganz vorstellen)...

    Ok. ich sehe ich habe mich nicht richtig ausgedrückt. Die Kopierten Files sollen mit 1000000.jpg, 1000001.jpg usw. benennt werden.
    Dies dient alleine einer schöneren Darstellung ;)
    tut mir Leid das ihr das falsch verstanden habt.

    So long
    Storyteller

    Make it idiot proof, and someone will build a better idiot!

    Ich würd so gern die Welt verändern, aber Gott gibt mir den Quellcode nicht.

  • Hallo,

    klappt das: Post #4 nicht :?:

    mfg (Auto)Bert

    Ups war mein Fehler das es nicht geklappt hat deine Lösung funktioniert einwandfrei danke dir

    Make it idiot proof, and someone will build a better idiot!

    Ich würd so gern die Welt verändern, aber Gott gibt mir den Quellcode nicht.