Bekomme es nicht hin >.>

  • Hallo,

    ich habe eben versucht mit Hilfe der Hilfedatei einen Script zu erstellen allerdings funktioniert er überhaupt nicht und ich habe noch paar Fragen.

    1. Wie mache ich es, dass ich , wenn ich ein Pfad angeben soll, es so mache, dass er die Datei aus dem Ordner nimmt, in dem die Autoit Datei drinne ist? Also nicht C:/ ... , sondern nur den Dateiname

    2. Wie sollte mein Script dort aussehen, wenn er funktionieren soll?

    Er soll gucken, ob eine Datei existiert. Wenn sie existiert, dann soll er gucken, wie groß die Datei ist.
    Wenn die Datei keine 200 kb oder mb ( weiß nicht, in was er das immer rechnet ) groß ist, dann soll er schreiben, dass die Datei kaputt ist.


    Spoiler anzeigen


    f FileExists ( "path" ) Then
    FileGetSize ( "test.txt" )

    If FileGetSize ( "200" ) Then
    MsgBox(4096,"", "Datei vollständig")
    ElseIf FileGetSize ( " " ) Then
    MsgBox(4096,"", "Datei kaputt")

    Einmal editiert, zuletzt von White (28. Mai 2011 um 23:37)

  • Der aktuelle Pfad des Scripts ist immer:

    @ScriptDir

    Was du willst kann wie folgt gehen:

    [autoit]

    Dim $dateigroesse
    Dim $dateisollgroesse = 200
    If FileExists (@ScriptDir & "\test.txt") Then
    $dateigroesse = FileGetSize (@ScriptDir & "\test.txt")
    EndIf
    If $dateigroesse >= $dateisollgroesse Then
    MsgBox(4096,"", "Datei vollständig")
    Else
    MsgBox(4096,"", "Datei kaputt: " & $dateigroesse & " Bytes statt " & $dateisollgroesse & " Bytes.")
    EndIf

    [/autoit]

    Das ist jetzt eine "lesbare" Variante - so mache ich es gerne, es geht auch kürzer

    [autoit]


    If FileExists (@ScriptDir & "\test.txt") Then
    If FileGetSize (@ScriptDir & "\test.txt") >= 200 Then
    MsgBox(4096,"", "Datei vollständig")
    Else
    MsgBox(4096,"", "Datei kaputt")
    EndIf
    EndIf

    [/autoit]

    Der Befehl FileGetSize liefert die Größe in Bytes zurück, beim MByte etc musst du also entsprechend mal nehmen

  • Hmm damit komme ich nicht ganz klar. Kannst du mir bitte bei meinem jetzigen Script helfen?

  • Vielleicht so?

    [autoit]


    $min = 200 * 1024 ;200 kb = 200 * 1024 Bytes
    $datei = "Text1.txt"
    If FileExists($datei) And FileGetSize($datei) < $min Then MsgBox(0, "Info", "Datei ist kleiner als 200kb!")

    [/autoit]

    Gruß,
    UEZ

    Auch am Arsch geht ein Weg vorbei...

    ¯\_(ツ)_/¯

  • Danke ;)

    Funktioniert wunderbar.

    Habe es noch ein kleines Bisschen erweitert.

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

    $min = 200 * 1024 ;200 kb = 200 * 1024 Bytes
    $max = 200 * 52542.88 ; 200 * 52542.88 ergeben 1 Mb ..

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

    $datei = "Autoit.chw"
    If FileExists($datei) And FileGetSize($datei) < $min Then MsgBox(0, "Info", "Datei ist kleiner als 200kb!")
    If FileExists($datei) And FileGetSize($datei) < $max Then MsgBox(0, "Info", "Datei ist größer als 1 MB und sie muss leider unbenannt werdne. Drücken sie auf okay um den Vorgang fortzusetzen.")

    [/autoit]

    Muss man nicht eigtl nach jedem Befehl ein next oder so ein switch setzen?

  • Oh White ...

    Warum rechnest du max auch mit 200?

    1Mbyte = 1024 * 1024 Byte

    1 Byte = 1 Byte
    1 KByte = 1024 Bytes
    1 MByte = 1024 KBytes

    Somit sind 1Mbyte = 1024 *1024 = 1.048.576 Bytes

    Dein "200 * 52542.88" ergibt 10.508.576 Bytes - das sind eher 10MByte

    Next wäre für schleifen ....
    Switch - ja da könntest du in abhängikeit vom Wert arbeiten