FileMove Problem

  • Hallo zusammen,

    nach etlichen Versuchen muß ich mich nun melden.
    Ich kann leider das kpl. Script nicht posten,
    ist sehr komplex....

    Folgendes:

    1. Es wird in einem Loop eine Sound.mp3 erstellt
    2. Dann wird diese Datei abgespielt und wieder geschlossen.

    Bis hierhin OK! Sieht so aus...

    [autoit]


    $sound = _SoundOpen($Ordner & "\sound.mp3")
    _SoundPlay($sound, 1)
    _SoundClose($sound)

    [/autoit]

    Beim nächsten Loop-Durchgang wird eine neue Sound.mp3 erstellt.
    Das klappt alles, doch jetzt kommt das Problem:

    1. Ich möchte diese Sound.mp3 am Ende des Loops
    (vor dem next Befehl) in einen neuen Ordner mit neuem Namen verschieben!

    Komisch ist, die erste Datei wird umbenannt und kommt an,
    aber alle anderen nicht!

    [autoit]


    FileMove($Ordner & "\sound.mp3",$Ordner&"\"&$Landwahl[0]&"\"&$dateiu&".mp3")
    MsgBox(0,"",$dateiu)

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

    Ich kann mir alles mit Msgboxen ausgeben lassen, stimmt alles...(Pfad, Ordner, Datei)
    Auch die Sound.mp3 ist jedesmal unterschiedlich...
    Aber sie wird nie kopiert und umbenannt... ich habe am Ende nur eine Datei

    Also z.B. mein Loop macht 10 verschiedene sound.mp3
    Wenn diese erstellt ist, soll sie umbenannt werden und in den Ordner verschoben werden.

    Komisch ist, die erste Datei wird erstellt, aber dann passiert nichts mehr!
    Also die sound.mp3 v. Quellordner landet im neuen Ordner und ist umbenannt. aber beim nächsten Durchlauf
    kommt nichts mehr an!

    ;) Liebe Grüße
    Ilse

    EDIT

    Folgendes habe ich nun versucht:
    Mein Loop legt die Dateien mit Zahlen an:
    Also 1.mp3, 2.mp3, 3.mp3....

    Wie kann ich diese 1.mp3 umbenennen und dann verschieben? FileMove klappt irgendwie nicht!

    2 Mal editiert, zuletzt von Ilse (8. Dezember 2012 um 19:03)

  • Sorry f. doppelpost,

    Die Dateien kommen alle im Verzeichnis an

    [autoit]


    FileMove($Ordner & "\"&$f&".mp3",$Ordner&"\"&$Landwahl[0]&"\")

    [/autoit]

    Sieht also so aus:

    Spoiler anzeigen


    1.mp3
    2.mp3
    3.mp3


    Den neuen Namen kann ich ausgeben (ohne.mp3)
    Also DateiNeu

    Wie kann ich diesen Namen als DateiNeu.mp3 mit FileMove erzeugen?
    Also mit dem Namen der mit $Dateiu erzeigt wird.
    Ich meine so:

    Spoiler anzeigen


    Peter.mp3
    Hans.mp3
    Udo.mp3

    [autoit]



    FileMove($Ordner & "\"&$f&".mp3",$Ordner&"\"&$Landwahl[0]&"\")
    ; das kopiert korrekt 1:1 die Daten

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

    ; aber das umbenennen das klappt leider nicht
    ;FileMove($Ordner & "\"&$f&".mp3",$Ordner&"\"&$Landwahl[0]&"\"&$dateiu&".mp3")

    [/autoit]

    :( Grüße Ilse

    P.S. Auch das geht nicht!

    Spoiler anzeigen
    [autoit]


    $Quellsatz = $Ordner & "\"&$f&".mp3" ; hier wird der korrekte Quellpfad angezeigt
    $Zielsatz = $Ordner&"\"&$Landwahl[0]&"\"&$dateiu&".mp3";hier wird ebenfalls der korrekte Zielpfad mit neuem Namen angezeigt

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

    FileCopy($Quellsatz,$Zielsatz,1)

    [/autoit]

    2 Mal editiert, zuletzt von Ilse (7. Dezember 2012 um 19:43)

  • Hallo minx,

    merci für deine Hilfe.
    Ja, so schlau war ich auch schon,
    aber auch hier passiert das gleiche.
    File 1 wird korrekt benannt (od. verschoben...), und dann passiert nichts mehr.
    Das ist wirklich seltsam. Ich habe schon alle Varianten probiert.

    Habe ich einen Zähler dann werden alle Files benannt bzw.verschoben

    Spoiler anzeigen


    1.mp3
    2.mp3
    3.mp3

    Beim direkten Erstellen m. Namen wird nur das erste File gemacht.

    Dann habe ich zum testen eine Inputbox verwenden
    und den Text an die Inputbox übergeben, Timeout z.B. 2
    ging auch nicht, aber
    ACHTUNG: wenn die Inputbox z.B. f. File 1 zum benennen vorher aufgeht
    und ich den Text eintippe und dann mit Return bestätige, dann macht er alles richtig.
    Auch bei File 2,3,4,5...
    Also aus 1.mp3 wird neuerText.mp3 ...Ich kann dann f. alle Files Namen vergeben.
    Nur im Script kann ich das nicht automatisieren.
    Wird der Text als Variable bei FileMove eingetragen, dann klappt es nicht.

    Auch #requireAdmin brachte nicht den Erfolg.


    ;) Liebe Grüße
    Ilse

  • File-Befehle gehen nicht? Erst Ansatz: "#requireAdmin" an den Anfang des Skriptes.


    Hat nichts mit Berechtigungen zu tun, denn

    Komisch ist, die erste Datei wird umbenannt und kommt an,
    aber alle anderen nicht!


    Dies deutet auch darau hin:

    • dass entweder die Dateien noch durch _SundPlay gesperrt sind.
    • oder falsche Pfadngaben, das umbenennen verhindern.

    Habe ich einen Zähler dann werden alle Files benannt bzw.verschoben

    deutet stark uf den Pfad.

    Ich kann leider das kpl. Script nicht posten,
    ist sehr komplex....


    dann wirst du den Fehler wohl alleine suchen müssen. Die Tipps aus [ offen ] Tutorial: Wie man Script-Fehler erfolgreich sucht/findet bzw. richtig debuggt sind dabei nützliich. Du kannst aber auch ein ansonstren lauffähiges Beispiel machen in dem der Fehler auftritt.


    mfg autoBert

    Einmal editiert, zuletzt von autoBert (8. Dezember 2012 um 13:38)

  • Hallo zusammen,

    ich hab's gelöst.

    1. Pfad war ok
    2. Befehle alle richtig.
    3. #requireAdmin (wurde nicht benötigt)
    4. FileMove ok

    Der Fehler lag in der Var. mit dem neuen Namen.
    Ich habe geschrieben... der erste Eintrag ist ok, aber dann...

    Die Var wurde in der MSGBox angezeigt, schien alles in Ordnung zu sein.

    Dann habe ich die VAR in eine Ini schreiben lassen
    Da ist mir aufgefallen dass ein LF nach der VAR gemacht wurde.
    Obwohl ich kein @crlf gesetzt hatte. Seltsam.

    Dann habe ich die Datei bearbeitet
    und siehe da, alles läuft.


    Liebe Grüße
    :) Ilse