aletri
Goto Top

Vbscript zum überprüfen der exe Version wenn.dann

Hallo Leute

Script funktioniert wenn niedrigere Version der exe vorhanden ist.
Ist jedoch der Pfad C:\Program Files (x86)\12bPilot\SODE\SimObjectDisplayEngine.exe nicht vorhanden, dann
kommt die Fehlermeldung : Line: 3, Char: 1, Error: Object required: 'fso'

Set objFSO = CreateObject("Scripting.FileSystemObject")  

If fso.FileExists ("C:\Program Files (x86)\12bPilot\SODE\SimObjectDisplayEngine.exe") Then  
fso.EXEver = objFSO.GetFileVersion ("C:\Program Files (x86)\12bPilot\SODE\SimObjectDisplayEngine.exe")  
End if

If EXEVer >= "1.5.3.0" Then  
WScript.Quit
End if

set wshell = CreateObject("Wscript.shell")  
wshell.run "C:\zATi\Installer_SODE_v1.5.3.msi"  

Content-Key: 346249

Url: https://administrator.de/contentid/346249

Printed on: April 26, 2024 at 17:04 o'clock

Member: beidermachtvongreyscull
beidermachtvongreyscull Aug 14, 2017 updated at 10:59:07 (UTC)
Goto Top
Ja,

Du musst vorher prüfen, ob der Ordner (also der Pfad zur Datei) überhaupt existiert.
Dann kannst Du diesen Fehler fangen.

https://msdn.microsoft.com/en-us/library/5xc78d8d(v=vs.84).aspx
Member: emeriks
emeriks Aug 14, 2017 updated at 11:16:37 (UTC)
Goto Top
Ist jedoch der Pfad C:\Program Files (x86)\12bPilot\SODE\SimObjectDisplayEngine.exe nicht vorhanden, dann
kommt die Fehlermeldung : Line: 3, Char: 1, Error: Object required: 'fso'
Du täuschst Dich selbst.

Was fällt Dir da auf?
Set objFSO = CreateObject("Scripting.FileSystemObject")
If fso.FileExists ("C:\Program Files (x86)\12bPilot\SODE\SimObjectDisplayEngine.exe") Then
Member: beidermachtvongreyscull
beidermachtvongreyscull Aug 14, 2017 at 11:48:00 (UTC)
Goto Top
Ist mir nicht aufgefallen. face-sad
Member: aletri
aletri Aug 15, 2017 at 07:21:51 (UTC)
Goto Top
Wieso funktioniert der fast gleiche Script ohne Versionsabfrage in beiden Fällen?
Mit und ohne Ordner?

Set fso = CreateObject("Scripting.FileSystemObject")  

If fso.FileExists("C:\Program Files (x86)\12bPilot\SODE\SimObjectDisplayEngine.exe") Then  
WScript.Quit
End if

set wshell = CreateObject("Wscript.shell")  
wshell.run "C:\zATi\Installer_SODE_v1.5.3.msi"  
Member: emeriks
emeriks Aug 15, 2017 updated at 07:46:45 (UTC)
Goto Top
Weil hier a) der Schreibfehler beim FSO nicht drin ist und b) ich nicht weiß, was "beide Fälle" sind.

Wenn Du in Deinem in der Frage genannten Script den Schreibfehler korrigierst, dann hättest Du für Zeile 7 die Grundlage zur Prüfung. Jedoch kann man den Inhalt von Strings nicht einfach so auf >= prüfen. Und weil man die Versionsnummer nicht einfach in eine reelle Zahl konvertiert bekommt, wirst Du diese in die einzelnen Nummern zerlegen und dann diese einzeln vergleichen müssen. Ein Beispiel dafür findest Du über Google, z.B.: http://www.posteet.com/view/206 . Ich habe das nicht getestet aber es sieht auf dem ersten Blick OK aus.
Member: aletri
aletri Aug 15, 2017 at 08:25:23 (UTC)
Goto Top
Hallo emeriks

Besten Dank
Werde es mal ausprobiern!
Was meinst Du mit Schreibfehler ?
Member: emeriks
emeriks Aug 15, 2017 at 08:49:44 (UTC)
Goto Top
Was meinst Du mit Schreibfehler ?
Nicht wirklich, oder?
Meine erste Antwort nicht gelesen und verstanden?
Member: aletri
aletri Aug 15, 2017 at 09:15:11 (UTC)
Goto Top
Gelesen nicht verstanden?
Member: emeriks
emeriks Aug 15, 2017 at 09:21:32 (UTC)
Goto Top
Na was habe ich denn in meiner ersten Antwort fett hervorgehoben?