Deinstaller Script funkt net^^

  • Guten abend,

    Ich bräuchte mal wieder Hilfe bei ein simplen Fehler wo ich den Fehler i-wie nicht sehe 8|
    naja; also mein Script soll die Manuelle Deinstallations Fehigkeiten testen, und das folgende Script-teil soll überprüfen ob die Datei noch vorhanden ist.
    Wenn ja: Löschen und die noch zu löschenden/gelöschten Dateien Zählen und den Pfad in einer Editbox Schreiben. // Wenn das Löschen durch z.B fehlenden Rechten nicht geht seperat abspeichern.
    Wenn nein: Erfolgs Zähler +1 Rechnen.

    [autoit]


    ;----------------------
    ;$g = Gesammte Dateien die vorhanden sind/waren.
    ;$u = Konnte nicht vom Programm gelöscht werden. -> Notiere den Pfad
    ;$v = Erfolgreich gelöscht. -> Notiere Pfad für Feedback
    ;$e = Var. die die Erfolgreich - Manuell gelöschten Dateien zählt
    ;$log = "Dateipfad zur Ini Datei"
    ;---------------------

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

    ....
    $RegFile1=IniRead($log,"File","1",0) ;kurz und knapp:
    If Not $RegFile1 = 0 Then; <- hier darf es nicht weiter gehen wenn es den Eintrag in der ini nicht gibt.
    $g+=1
    If FileExists($RegFile1) Then
    $fd=FileDelete($RegFile1)
    If $fd = 0 Then
    $u&=$RegFile1&@CRLF
    Else
    $v&=$RegFile1&@CRLF
    EndIf
    Else
    $e+=1
    EndIf
    EndIf
    ....

    [/autoit]


    Problem: Auch wenn die zu überprüfenden Datei nicht existiert bzw. nie existierte, läuft das Script durch die If-Schleife; was es nicht soll.

    Ps. Wenn es die Datei nie Existierte, sollte auch kein Eintrag in: "File","1" geben.

    Ich hoffe ich hab verständlich geschrieben ^^

    Sind TV-Quizfragen zu einfach? A) Ja B) Harry Potter

    Spoiler anzeigen

    Ich gebe zu dieser Post hat wahrscheinlich nicht viel geholfen,
    aber ich versuche wenigstens zu helfen :rolleyes:

    3 Mal editiert, zuletzt von xXxProGamerxXx (15. September 2012 um 14:47)

  • [autoit]

    If FileExists($RegFile1) Then
    ; ... lösche Datei und logge Ergebnis in $u oder $v
    Else
    $e+=1 ; Wenn Datei niiicht existiert, erhöhe Erfolgscounter.
    EndIf

    [/autoit]


    Willst du es nicht so haben ?

    [autoit]

    $RegFile1 = IniRead($log, "File", "1", 0) ;kurz und knapp:
    If Not $RegFile1 = 0 Then; <- hier darf es nicht weiter gehen wenn es den Eintrag in der ini nicht gibt.
    $g += 1
    If FileExists($RegFile1) Then
    $fd = FileDelete($RegFile1)
    If $fd = 0 Then
    $u &= $RegFile1 & @CRLF
    Else
    $v &= $RegFile1 & @CRLF
    $e += 1 ; Erhöhe Erfolgscounter
    EndIf
    Else
    $w &= $RegFile1 & @CRLF ; Notiere, dass Datei nicht existierte
    EndIf
    EndIf

    [/autoit]
  • nein aber danke.
    Also mein Script muss sich nicht Notieren wenn es die Datei nicht Existiert, mein Problem ist eigentlich nur
    das er die If Abfrage durchführt auch wenn es den eintrag in: IniRead($log, "File", "1", 0) nicht Existiert.
    also mal gekürzt:

    [autoit]

    $RegFile1 = IniRead($log, "File", "1", 0) ;kurz und knapp:
    If Not $RegFile1 = 0 Then; <- hier darf es nicht weiter gehen wenn es den Eintrag in der ini nicht gibt.
    ;... Hier soll das Script nicht hinkommen wenn iniread den eintrag nicht findet
    EndIf

    [/autoit]

    Also entweder bin ich blind oder Autoit hat´n Bug :D
    denn wenn IniRead($log, "File", "1", 0) nix findet schreibt er eine 0
    und bei der If-Abfrage soll es nur weigergehen wenn es keine 0 ist also: If not $... = 0 then

    Sind TV-Quizfragen zu einfach? A) Ja B) Harry Potter

    Spoiler anzeigen

    Ich gebe zu dieser Post hat wahrscheinlich nicht viel geholfen,
    aber ich versuche wenigstens zu helfen :rolleyes:

    Einmal editiert, zuletzt von xXxProGamerxXx (15. September 2012 um 10:28)

  • Ich glaube das Problem ist das IniRead einen String zurück gibt:

    [autoit]


    $RegFile1 = IniRead($log, "File", "1", 0) ;kurz und knapp:
    If $RegFile1 <> "0" Then; <- hier darf es nicht weiter gehen wenn es den Eintrag in der ini nicht gibt.
    ;... Hier soll das Script nicht hinkommen wenn iniread den eintrag nicht findet
    EndIf

    [/autoit]


    So sollte es eigentlich klappen.
    Not0 ------> True
    Not "0" ---> False

    3 Mal editiert, zuletzt von Zeitriss (15. September 2012 um 14:36)

  • Das ist aber nicht ewig so gewesen oder?
    denn früher hatte es auch so gefunkt. naja egal Danke hat geklappt^^

    Sind TV-Quizfragen zu einfach? A) Ja B) Harry Potter

    Spoiler anzeigen

    Ich gebe zu dieser Post hat wahrscheinlich nicht viel geholfen,
    aber ich versuche wenigstens zu helfen :rolleyes: