"Filemove" nur mit bestimmten Datein möglich?

  • Hallo ihr Lieben,


    dies ist mein erster Beitrag, ich hoffe, ich poste ihn hier auch ins richtige Unterforum!


    Ich habe ein Problem mit dem Befehl "Filemove".

    Ich möchte gerne ein Sript schreiben, mit dem ich Videos einer Serie umbenennen kann, da diese Namen haben (Präfixe), die sie nicht enthalten sollten.

    Da es sich aber um ca. 80 Folgen handelt, habe ich keine Lust, alle von Hand umzubenennen.

    Deswegen habe ich mir mir folgenden Script geschrieben.


    Allerdings werden die Videos nicht kopiert; es werden keine Fehler angezeigt und sogar der Ordner im Filemove wird generiert... die Datein jedoch werden nicht kopiert/umbenannt.


    Die vorhandene Msgbox ist nur für mich da, zur Kontrolle, das im Moment alles stimmt mit der Benennung.


    Ich weiß leider nicht mehr weiter, ich hoffe, ihr könnt mir irgendwie helfen.


    [autoit]

    #include

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

    Dim $namen

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

    Dim $datein

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

    Dim $a
    _FileReadToArray("Titel der Folgen.txt.", $namen)

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

    $datein = _FileListToArray(@ScriptDir,"*.avi")

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

    for $a = 1 to UBound($datein) -1

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

    MsgBox(0, "Anzeige", $datein[$a] & @crlf & $namen[$a])

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

    FileMove(@ScriptDir & $datein[$a], @ScriptDir &"\umbenannt2\"&$namen[$a]&".avi",8)

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

    Next

    [/autoit]


    Liebe Grüße, Aryan

  • Das mit dem "\" habe ich eingefügt... aber leider tut sich immer noch nichts.

    Gibt es hier einen Unterschied zwischen " und ' ?

    Oder geht Filemove ab einer bestimmten Dateigröße nicht mehr, bzw. kann es nur bestimmte Dateiarten bewegen?

  • also ich könnt mir denken, dass _FileReadToArray en Error zurück gibt:

    [autoit]

    _FileReadToArray("Titel der Folgen.txt.", $namen)

    [/autoit]


    Versuchs mal ohne den Punkt hinter txt:D

  • hallo so etwa bei filemove war der pfad der quelle falsch


    Spoiler anzeigen

    #Include <Array.au3>
    #include <file.au3>

    Global $namen,$datein,$a

    $datei = FileOpen("Titel der Folgen.txt", 0)

    ; Überprüfe ob die Datei geöffnet werden konnte
    If $datei = -1 Then
    MsgBox(0, "Error", "Konnte Datei nicht öffnen.")
    Exit
    EndIf
    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

    _FileReadToArray(@ScriptDir & "\Titel der Folgen.txt", $namen)
    ;;;;;;;;;;;;;;;;;; Überprüfe ob die Datei eingelesen werren werden konnte
    If Not _FileReadToArray(@ScriptDir & "\Titel der Folgen.txt", $namen) Then
    MsgBox(4096, "Fehler", "Fehler beim Einlesen der Datei in das Array!" & @CRLF & "Fehlercode: " & @error)
    Exit
    EndIf
    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;


    $datein = _FileListToArray(@ScriptDir,"*.avi")

    for $a = 1 to UBound($datein) -1


    MsgBox(0, "Anzeige", $datein[$a] & @crlf & $namen[$a])
    FileMove(@ScriptDir & "\" & $datein[$a], @ScriptDir &"\umbenannt2\"&$namen[$a]&".avi",8)

    Next

  • @sillyboy vlt en paar tipps:
    - Autoit-Quellcode tag benützen
    - FileOpen() ist in dem Fall unnötig... Wenn dann würd ich halt wenigstens dann das handle in _FileReadToArray() weiterverwenden:D
    - wenn man fileopen benützt, sollte man die Datei mit FileClose() wieder schließen

  • _FileReadToArray() prüft schon selber ob die Datei überhaupt existiert, wenn sie nich existiert, dann setzt es @Error auf 1...

    [autoit]

    _FileReadToArray(@ScriptDir & "\Titel der Folgen.txt", $namen)
    If @error = 1 Then
    MsgBox(0, "Error", "Datei existiert nicht.")
    ElseIf @error = 2 Then
    MsgBox(0, "Error", "Fehler beim Einlesen der Datei")
    EndIf

    [/autoit]


    Also zumindest ich empfinde das als bessere Lösung...
    Aber jeder hat seinen eigenen Stil

    Also ich denke Error handling ist wirklich ein wichtiges Thema, schau dir mal den Thread von Andy an.
    Du erleichterst dir das Programmieren einfach ungemein.
    Sei nicht böse, ich will dir nur helfen :thumbup:

    Zitat

    You just keep on trying 'till you run out of cake. ;)


    [STEAM] Source UDF

    Einmal editiert, zuletzt von K4z (11. Januar 2012 um 20:12)

  • Zitat von &quot;K4z&quot;

    Also ich denke Error handling ist wirklich ein wichtiges Thema, schau dir mal den Thread von Andy an.
    Du erleichterst dir das Programmieren einfach ungemein.
    Sei nicht böse, ich will dir nur helfen

    Falls du mich damit meinst:
    Das glaube ich dir gerne, ich bin aber erst ganz am Anfang mit der Programmiereri und für dieses Script brauche ich das auch nciht wirklich, weil es sehr spezifisch sein soll. Werde aber dennoch mal nach deinen genannten Thread suchen.

    Aber zu meinem Problem:

    Habe den Fehlertest eingefügt, er zeigt mir aber nichts an, also wird wohl bis dahin alles richtig sein.
    Und auch der Punkt zu viel war es nicht, leider.

  • Wenn du Massendateien umbenennen möchtest, dann eignet sich "Ant Renamer" perfekt dazu. (Siehe Google)

    Da kann man unendlich viel einstellen und man sieht auch sofort die Vorschau, wie die Dateien nach dem Umbenennen aussehen werden.

    Gruß.

    Einmal editiert, zuletzt von hexpirator (13. Januar 2012 um 09:22)