FileMove umbenennen geht nicht

  • Hallo,

    Hänge da jetzt schon länger fest, frage ich mal lieber.
    Warum geht bei dieser Zeile das umbenennen nicht ?

    [autoit]

    FileMove(@ScriptDir & "\Skripte\Start\algemein.zip", $sdv & "Sicherungen\sicherung\" & $readts3, 9)

    [/autoit]


    Wobei " $readts3 " diese Form hat " Allgemein282-286.zip "
    Diese Zeile geht ohne Probleme

    [autoit]

    FileMove(@ScriptDir & "\Skripte\Start\algemein.zip", $sdv & "Sicherungen\sicherung\" & ".zip", 9)

    [/autoit]

    Komme einfach nicht dahinter was ich falsch mache.

    mfg
    oh-ha

    Es gibt drei Wahrheiten: deine Wahrheit, meine Wahrheit und die Wahrheit

    2 Mal editiert, zuletzt von oh-ha (27. Februar 2010 um 21:54)

  • ups sorry mein Fehler, hatte vergessen das " & " da mit reinzuschreiben.
    ist natürlich auch mit drin in meinen Skript.
    Verbessere ich mal oben.

    mfg
    oh-ha

    Es gibt drei Wahrheiten: deine Wahrheit, meine Wahrheit und die Wahrheit

  • hatte ich schon mal gemacht zeigt er mir genau das an was drin stehen soll.
    C:\mein\Sicherungen\sicherung\Allgemein282-286.zip

    Deshalb hatte ich es ja auch mit der zweiten Zeile oben mal getestet und damit geht es. Der nimmt mir einfach nicht die variable an.
    is schier zum verzweifeln.

    Das ganze Skript würde den Rahmen hier auch ein wenig sprengen denke ich mal sind so ca.2500 Zeilen.

    mfg
    oh-ha

    Es gibt drei Wahrheiten: deine Wahrheit, meine Wahrheit und die Wahrheit

  • Zitat

    Das ganze Skript würde den Rahmen hier auch ein wenig sprengen denke ich mal sind so ca.2500 Zeilen.


    Das glaub ich nicht. Wieso postest du es nicht einfach es kann schließlich jeder selbst entscheiden ob er sich die Mühe einer Fehlersuche macht.

  • so wieder da

    name22
    Meinte damit eigentlich das es mehr Fehler verursacht wenn man das Skript umschreibt das man es öffentlich machen kann
    als das es Hilft bei der Fehlersuche. Habe da Emailadressen als Variablen drin die alle raus müßten und noch ein paar Sachen.

    @ideas2code
    habe es mal probiert funktionierte auch nicht aber werden die Skripte nicht eh als Admin ausgeführt.

    Das komische ist das es als " FileCopy " geht nur als " FileMove " nicht.


    mfg
    oh-ha

    Es gibt drei Wahrheiten: deine Wahrheit, meine Wahrheit und die Wahrheit

  • Das komische ist das es als " FileCopy " geht nur als " FileMove " nicht.

    sind die dateien vllt von anderen programmen geöffnet?

    ansonsten wäre ein kleines beispiel das dein problem auf den punkt bringt recht praktisch ^^

  • Zitat

    sind die dateien vllt von anderen programmen geöffnet?


    Da mss ich mal schauen, hatte ich noch gar nicht dran Gedacht das die noch offen sein könnte.

    Es wird eine Excel Tabelle generiert die dann mit 7za.exe über eine Batch gezipt wird.
    hier mal der Teil der mir Kopfschmerzen macht

    [autoit]

    _ExcelBookClose($oExcel)
    FileCopy(@ScriptDir & "\Skripte\Start\Liste\ExcelListen\Daten.xls", @ScriptDir & "\Skripte\Start\", 9)
    ShellExecuteWait("start.bat","",@ScriptDir & "\Skripte\Start","")
    $readts4 = FileOpen(@ScriptDir & "\Skripte\Start\Liste\Listen\ts3.log", 0)
    $readts3 = FileRead($readts4)
    FileClose($readts4)
    copie()
    EndFunc ;==>allgemein

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

    Func copie()
    MsgBox(0,"info", $sdv & "Sicherungen\sicherung\" & $readts3)
    FileMove(@ScriptDir & "\Skripte\Start\algemein.zip", $sdv & "Sicherungen\allgemein\" & $readts3, 9)
    FileDelete(@ScriptDir & "\Skripte\Start\Daten.xls")
    FileDelete(@ScriptDir & "\Skripte\Start\algemein.zip")
    ;FileCopy(@ScriptDir & "\Skripte\Start\algemein.zip", ($sdv & "Sicherungen\allgemein\" & $readts3), 9)
    EndFunc ;==>copie

    [/autoit]

    Hatte das mal in eine Func "Func copie() " geschrieben, einer meiner Versuche das hin zu bekommen.

    Die paar Zeilen der Batch:

    Code
    @echo off
    cls
    7za a -tzip algemein.zip *.xls 
    exit

    mfg
    oh-ha

    Es gibt drei Wahrheiten: deine Wahrheit, meine Wahrheit und die Wahrheit

  • [autoit]

    _ExcelBookClose($oExcel)
    FileCopy(@ScriptDir & "\Skripte\Start\Liste\ExcelListen\Daten.xls", @ScriptDir & "\Skripte\Start\", 9)
    ShellExecuteWait("start.bat","",@ScriptDir & "\Skripte\Start","")
    $readts4 = FileOpen(@ScriptDir & "\Skripte\Start\Liste\Listen\ts3.log", 0)
    $readts3 = FileRead($readts4)
    FileClose($readts4)
    copie()
    EndFunc ;==>allgemein

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

    Func move1()
    MsgBox(0,"info", $sdv & "Sicherungen\sicherung\" & $readts3)
    FileMove(@ScriptDir & "\Skripte\Start\algemein.zip", $sdv & "Sicherungen\allgemein\" & $readts3, 9)
    FileDelete(@ScriptDir & "\Skripte\Start\Daten.xls")
    EndFunc ;==>move1

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

    Func move2()
    MsgBox(0,"info", $sdv & "Sicherungen\sicherung\" & $readts3)
    FileCopy(@ScriptDir & "\Skripte\Start\algemein.zip", ($sdv & "Sicherungen\allgemein\" & $readts3), 9)
    FileDelete(@ScriptDir & "\Skripte\Start\algemein.zip")
    FileDelete(@ScriptDir & "\Skripte\Start\Daten.xls")
    EndFunc ;==>move2

    [/autoit]

    Wenn du FileMove() Benutzt, musst du die Datei nicht mehr löschen.
    Kannst du die Datei denn überhaupt löschen? Dann wäre wohl die 2. Variante am besten, da diese (fast) IMMER kopiert und danach erst löscht.

  • habe mal beides getestet geht aber nicht.
    Kann die ohne Probleme löschen.
    aber benennt der die denn überhaupt um mit " FileCopy "

    Es gibt drei Wahrheiten: deine Wahrheit, meine Wahrheit und die Wahrheit

  • oh man habe den Fehler gefunden.
    hatte sich wohl eine Leerzeile in der Text Datei eingeschlichen der dann natürlich mitkopiert worden ist.
    an dieser Stelle

    [autoit]

    $readts3 = FileRead($readts4)

    [/autoit]


    Habe da einfach ein

    [autoit]

    $readts3 = FileReadLine($readts4, 1)

    [/autoit]


    draus gemacht und schon geht es.
    wollte eh auf *.ini umsteigen nun Verstehe ich auch den Sinn darin.

    Danke an alle die geholfen haben

    mfg
    oh-ha

    Es gibt drei Wahrheiten: deine Wahrheit, meine Wahrheit und die Wahrheit