Page 1 of 1

[Gelöst] Deinstallation mit IF DoesFileExist

Posted: 16. Nov 2012, 15:08
by Arthur
Hallo Zusammen

Ich habe eigentlich ein einfaches Problem, aber vor lauter Bäumen seh ich den Wald nicht mehr...
Folgende Situation:

Ein Programm schreibt je nach Version zwei verschiedene exe files für die Deinstallation.
unins000.exe und unins001.exe
Wie bringe ich Empirum bei, dass er mir bei einem DoesFileExist in die entsprechende Sektion springt? (Beim Deinstallieren)

Ich dachte an:

Code: Select all

If DoesFileExist ("c:\Program Files (x86)\XXXXX\unins000.exe") Then "Set:Deinstallation2" Else "Set:Deinstallation3" Endif 

Code: Select all

 [SET:Deinstallation2]
If %ErrorLevel% <> "0" Then "SET:DeInstallationError" EndIf
-Call "c:\Program Files (x86)\XXXXX\unins000.exe" /silent
-AddMeter -1 

Code: Select all

 [SET:Deinstallation3]
If %ErrorLevel% <> "0" Then "SET:DeInstallationError" EndIf
-Call "c:\Program Files (x86)\XXXXX\unins001.exe" /silent
-AddMeter -1 
Er springt mir immer in die Deinstallation3 obwohl das File auf dem System unins000.exe ist.
Wo ist mein Denkfehler?


Grüsse
Arthur

Re: Deinstallation mit IF DoesFileExist

Posted: 16. Nov 2012, 15:44
by Phadda
Auszug aus der Onlinehilfe

Code: Select all

DoesFileExist ("<Dateiname>")
Liefert "1", wenn die Datei existiert, "0" wenn die Datei nicht vorhanden ist.
Beispiel: If DoesFileExist ("%System%\Filename.txt") == "1" Then "FileIsThere" Else "FileIsntThere" EndIf
Und bei der Abfrage fehlt einfach der Wert auf den geprüft werden soll sprich =="1" oder sonstiges

Evtl dann so

Code: Select all

If DoesFileExist ("c:\Program Files (x86)\XXXXX\unins000.exe") =="1" Then "Set:Deinstallation2" Else "Set:Deinstallation3" Endif

Re: Deinstallation mit IF DoesFileExist

Posted: 16. Nov 2012, 15:46
by Hendrik_Ambrosius
Es fehlt der Vergleichsoperator (= "1"):

If DoesFileExist ("c:\Program Files (x86)\XXXXX\unins000.exe") = "1" Then "Set:Deinstallation2" Else "Set:Deinstallation3" Endif

Re: Deinstallation mit IF DoesFileExist

Posted: 16. Nov 2012, 15:48
by reinhard
Hallo Arthur;
richtig wäre:

Code: Select all

If DoesFileExist ("c:\Program Files (x86)\XXXXX\unins000.exe") == "1" Then "Set:Deinstallation2" Else 
Gruß,
Reinhard

Re: Deinstallation mit IF DoesFileExist

Posted: 16. Nov 2012, 16:03
by Arthur
Hallo Zusammen

Immer wieder erstaunlich wie schnell es geht!
Danke allen.

Ich darf es gar nicht erwähnen... das Problem war nicht die If Abfrage! (Die hatte ich auch am Anfang so wie ihr es mir vorgibt) sondern das ich an der falschen Version der Setup.inf gearbeitet habe. Natürlich wollte ich die alte Version deinstallieren! Änderte aber alle Einstellungen an der neuen inf Datei! :oops:

Hiermit funktioniert es:

Code: Select all

 [SET:Deinstallation]
If DoesFileExist ("%ProgramFiles(x86)%\XXXX\unins000.exe") = "1" Then "SET:Deinstallation2" Else "SET:Deinstallation3" EndIf


[SET:Deinstallation2]
If %ErrorLevel% <> "0" Then "SET:DeInstallationError" EndIf
-Call "c:\Program Files (x86)\XXXX\unins000.exe" /silent
-AddMeter -1

[SET:Deinstallation3]
If %ErrorLevel% <> "0" Then "SET:DeInstallationError" EndIf
-Call "c:\Program Files (x86)\XXXX\unins001.exe" /silent
-AddMeter -1
Nochmals besten Dank!