Idee + kann man das überhaupt?? Delete Files

  • wenn du das ganze dann kompilierst und per batch/cmd aufrufst
    z.b.

    Code
    cmdline.exe /param1 /param2 /param3 /paramn

    Padmak

    wohl doch eher:

    Code
    cmdline.exe param1 param2 param3 paramN

    ohne die "/"

    Zur Nutzung dieses Forum's, ist ein Übersetzer für folgende Begriffe unerlässlich:

    "On-Bort, weier, verscheiden, schädliges, Butten steyling, näckstet, Parr, Porblem, scripe, Kompletenz, harken, manuel zu extramieren, geckukt, würglich, excell, acces oder Compilevorgeng"

  • Hab das mal für mich so gemacht:

    [autoit]

    $CMDLINE[0] = 1
    $CMDLINE[1] = "Update"

    [/autoit]


    Aber sobald ich den über cmd aufrufe krieg ich folgenden Error:

    Code
    Line-1:
    
    
    
    
    Error: Cannot assign values to constants.
    • Offizieller Beitrag

    Du kannst $CMDLINE auch keine Werte zuweisen .
    Schau mal das Beispiel:

    [autoit]

    If $CMDLINE[0] Then
    If $CMDLINE[1] = "Update" Then
    ;Hier kommt rein was du aufrufst
    EndIf
    EndIf

    [/autoit]


    Wo der Comment ist kommt dein Code rein.

  • Micha_he
    ich habs absichtlich so gemacht weil ich parameter am liebsten mit / mache :D
    ist nur n schönheitsfehler
    Raupi
    ich würds per switch machen (is iwie sauberer^^)

    [autoit]


    If $CMDLINE[0] Then
    For $i = 1 To $CMDLINE[0]
    Switch $CMDLINE[$i]
    Case 'Update'
    ;Hier kommt dein Code rein
    Case Else
    Exit
    EndSwitch
    Next
    EndIf

    [/autoit]

    Padmak

    • Offizieller Beitrag

    ich würds per switch machen (is iwie sauberer^^)


    Ich denke, das ist nicht der Punkt ;) - wichtiger (wenn auch in dem Bsp. nicht von Belang) ist die Geschwindigkeit. Und da ist das If-Statement eine absolute Performancebremse.
    Kann mich noch gut an µit-BigInteger erinnern. Mit jedem entfernten If..Then wurde das Skript deutlich schneller. :D

  • Zitat

    wichtiger (wenn auch in dem Bsp. nicht von Belang) ist die Geschwindigkeit.

    ja des hätt ich eig auch sagen können :D
    [OT]
    warum ist das eigentlich schneller? weils nicht andauernd werte vergleichen muss?
    [/OT]

    Padmak

  • Gibt es eigtl. Situationen wo eine If Klausel besser ist als eine Switch/Select oder ist Switch/Select in jedem Fall schneller als If?
    Als konkretes Beispiel hätte ich da eine Tastenkombination, welche nur dann funktionieren soll wenn das Fenster nicht versteckt ist. Mit einer if Klausel kann ich einfach ein OR für jeden Fensterstatus hintenran hängen, bi switch/select müsste ich Case 1, Case 2, Case 3, Case 4, etc. reinschreiben, und in jeder Zeile wieder die gleiche Aktion, bei der If Klausel jedoch nur einmal die Aktion.

    Einmal editiert, zuletzt von ahatius (2. Februar 2009 um 20:52)

  • Nein
    just start this:D:

    [autoit]


    $bla = 1
    $bla2 = 2
    $timer = TimerInit()
    If $bla = 1 Or $bla2 = 2 Then
    EndIf
    $timerende = TimerDiff($timer)
    $timer2 = TimerInit()
    Select
    Case $bla = 1 Or $bla2 = 2
    EndSelect
    $timerende2 = TimerDiff($timer2)
    MsgBox(0, "", "Von If benötigte Zeit " & $timerende)
    MsgBox(0, "", "Von Select benötigte Zeit " & $timerende2)
    If $timerende < $timerende2 Then MsgBox(0, "", "If ist schneller")
    If $timerende > $timerende2 Then MsgBox(0, "", "Select ist schneller")

    [/autoit]


    Padmak

  • Also demnach, wo möglich (sei es nun technisch oder aufgrund meines Wissens) Select/Switch benutzen. Oder jetzt nochmal gefragt: Select oder Switch?

  • Ich würd switch nehmen
    kannst ja mal mein script ausprobieren und testen :)
    was schneller ist nimmst halt dann

    Padmak

  • Jo laut Script wars Select. Na ja, hab meine Skript If Abfragen in Switch Cases umgeschrieben.

  • @Padmak:

    Bei deinem Geschwindigkeitstest kommt ein anderes Ergebnis raus, wenn man die beiden Tests vertauscht ;)

    [autoit]

    $bla = 1
    $bla2 = 2
    $timer2 = TimerInit()
    Select
    Case $bla = 1 Or $bla2 = 2
    EndSelect
    $timerende2 = TimerDiff($timer2)
    $timer = TimerInit()
    If $bla = 1 Or $bla2 = 2 Then
    EndIf
    $timerende = TimerDiff($timer)
    MsgBox(0, "", "Von If benötigte Zeit " & $timerende)
    MsgBox(0, "", "Von Select benötigte Zeit " & $timerende2)
    If $timerende < $timerende2 Then MsgBox(0, "", "If ist schneller")
    If $timerende > $timerende2 Then MsgBox(0, "", "Select ist schneller")

    [/autoit]

    Da mich das jetzt interessiert hat, hab ih auch einen Test gemacht:

    [autoit]

    Global $Timer,$X,$i,$Max=1000000

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

    $Timer=TimerInit()
    For $i=1 To $Max
    If $i=0 Then MsgBox(0,"","")
    Next
    ConsoleWrite("IF THEN " & TimerDiff($Timer) & @LF)

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

    $Timer=TimerInit()
    For $i=1 To $Max
    If $i=0 Then
    MsgBox(0,"","")
    EndIf
    Next
    ConsoleWrite("IF THEN ENDIF " & TimerDiff($Timer) & @LF)

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

    $Timer=TimerInit()
    For $i=1 To $Max
    Switch $i
    Case 0
    MsgBox(0,"","")
    EndSwitch
    Next
    ConsoleWrite("SWITCH " & TimerDiff($Timer) & @LF)

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

    $Timer=TimerInit()
    For $i=1 To $Max
    Select
    Case $i=0
    MsgBox(0,"","")
    EndSelect
    Next
    ConsoleWrite("SELECT " & TimerDiff($Timer) & @LF)

    [/autoit]

    Bei mir ist IF (Ohne Endif) am schnellsten, am langsamsten ist SELECT... ^^

    • Offizieller Beitrag

    Reihenfolge ist bei mir auch:
    1. If...Then
    2. Switch
    3. If...Then...EndIf
    4. Select

    Wobei 3 und 4 noch weiter hinter Switch zurückfallen, wenn mehrere Vergleiche stattfinden:

    Spoiler anzeigen
    [autoit]


    Global $Timer, $X, $i, $Max = 1000000

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

    $Timer = TimerInit()
    For $i = 2 To $Max
    If $i = 0 Then MsgBox(0, "", "")
    Next
    ConsoleWrite("IF THEN " & TimerDiff($Timer) & @LF)

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

    $Timer = TimerInit()
    For $i = 2 To $Max
    If $i = 0 Then
    MsgBox(0, "", "")
    EndIf
    Next
    ConsoleWrite("IF THEN ENDIF " & TimerDiff($Timer) & @LF)

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

    $Timer = TimerInit()
    For $i = 2 To $Max
    Switch $i
    Case 0
    MsgBox(0, "", "")
    EndSwitch
    Next
    ConsoleWrite("SWITCH " & TimerDiff($Timer) & @LF)

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

    $Timer = TimerInit()
    For $i = 2 To $Max
    Select
    Case $i = 0
    MsgBox(0, "", "")
    EndSelect
    Next
    ConsoleWrite("SELECT " & TimerDiff($Timer) & @LF)

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

    $Timer = TimerInit()
    For $i = 2 To $Max
    If $i = 0 Then
    MsgBox(0, "", "")
    ElseIf $i = 1 Then
    MsgBox(0, "", "")
    EndIf
    Next
    ConsoleWrite("IF THEN ENDIF 2 " & TimerDiff($Timer) & @LF)

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

    $Timer = TimerInit()
    For $i = 2 To $Max
    Switch $i
    Case 0
    MsgBox(0, "", "")
    Case 1
    MsgBox(0, "", "")
    EndSwitch
    Next
    ConsoleWrite("SWITCH 2 " & TimerDiff($Timer) & @LF)

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

    $Timer = TimerInit()
    For $i = 2 To $Max
    Select
    Case $i = 0
    MsgBox(0, "", "")
    Case $i = 1
    MsgBox(0, "", "")
    EndSelect
    Next
    ConsoleWrite("SELECT 2 " & TimerDiff($Timer) & @LF)

    [/autoit]