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-ID: 346249

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

Ausgedruckt am: 24.11.2024 um 06:11 Uhr

beidermachtvongreyscull
beidermachtvongreyscull 14.08.2017 aktualisiert um 12:59:07 Uhr
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
emeriks
emeriks 14.08.2017 aktualisiert um 13:16:37 Uhr
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
beidermachtvongreyscull
beidermachtvongreyscull 14.08.2017 um 13:48:00 Uhr
Goto Top
Ist mir nicht aufgefallen. face-sad
aletri
aletri 15.08.2017 um 09:21:51 Uhr
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"  
emeriks
emeriks 15.08.2017 aktualisiert um 09:46:45 Uhr
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.
aletri
aletri 15.08.2017 um 10:25:23 Uhr
Goto Top
Hallo emeriks

Besten Dank
Werde es mal ausprobiern!
Was meinst Du mit Schreibfehler ?
emeriks
emeriks 15.08.2017 um 10:49:44 Uhr
Goto Top
Was meinst Du mit Schreibfehler ?
Nicht wirklich, oder?
Meine erste Antwort nicht gelesen und verstanden?
aletri
aletri 15.08.2017 um 11:15:11 Uhr
Goto Top
Gelesen nicht verstanden?
emeriks
emeriks 15.08.2017 um 11:21:32 Uhr
Goto Top
Na was habe ich denn in meiner ersten Antwort fett hervorgehoben?