Mahlzeit,
ich habe gerade ein kleines Problem an dem ich verzweifel.
Ich versuche gerade ein Skript zu erstellen, welches ein Setup ausführen soll.
Wenn eine ältere Version dieses Setups installiert ist, soll er es vorhher deinstallieren. Leider hat diese Software keinen Uninstaller, weswegen ich versuche über die Registry zu gehen. Soweit so gut.
Leider funktioniert meine Switch...Case anweisung nicht. Kann mir jemand erklären warum?
[autoit]
#include <file.au3>
$OS = @OSArch
$bnCAD_Server = RegRead("HKCU\Environment", "bnCAD_Server")
MsgBox(0,"OS Architektur", $OS)
_testinstall()
func _testinstall()
If FileExists(@ProgramFilesDir & "\DiCaT\CableCaT V2.4\CableCaT.exe") Then
_FileWriteLog( @TempDir & "\CClog_" & @ComputerName & ".log", "Previous Installation of CableCat was found on " & @ComputerName )
$CCver = FileGetVersion(@ProgramFilesDir & "\DiCaT\CableCaT V2.4\CableCaT.exe")
_FileWriteLog( @TempDir & "\CClog_" & @ComputerName & ".log", "Found Version: " & $CCver )
IF Not $CCver ="2.4.2010.179" Then
Switch $CCver
case "2.4.2009.324"
RunWait("MsiExec.exe /X{5EFE3353-D69C-450C-917E-3EB1D412B3CC} /qn")
DirRemove(@ProgramFilesDir & "\DiCaT\CableCaT V2.4")
_instCC()
case "2.4.2010.85"
RunWait("MsiExec.exe /X{E4460BDB-BC12-4548-9811-790A678E8BB1} /qn")
DirRemove(@ProgramFilesDir & "\DiCaT\CableCaT V2.4")
_instCC()
case "2.4.2010.89"
RunWait("MsiExec.exe /X{8D1B398B-970F-4C04-BD6D-B02F1AEDD3C7} /qn")
DirRemove(@ProgramFilesDir & "\DiCaT\CableCaT V2.4")
_instCC()
case "2.4.2009.43"
RunWait("MsiExec.exe /X{432184D6-8DB9-4214-BE5B-4B0E67FE5787} /qn")
DirRemove(@ProgramFilesDir & "\DiCaT\CableCaT V2.4")
_instCC()
EndSwitch
Else
_FileWriteLog( @TempDir & "\CClog_" & @ComputerName & ".log", "Newest Version of CableCaT is installed.")
Exit
EndIf
Else
_FileWriteLog( @TempDir & "\CClog_" & @ComputerName & ".log", "CableCaT was not installed on this computer")
If FileExists(@ProgramFilesDir & "\DiCaT\CableCaT V2.4") Then
DirRemove(@ProgramFilesDir & "\DiCaT\CableCaT V2.4")
EndIf
_instCC()
EndIf
EndFunc
func _instCC()
RunWait("msiexec /i " & $bnCAD_Server & "\apps\global\cablecat\CableCaT.msi /qn allusers=1", @TempDir)
If $OS = "x86" Then
RunWait($bnCAD_Server & "\apps\global\cablecat\WIBU\WkRuntime\Setup.exe", @TempDir)
ElseIf $OS = "x64" Then
RunWait($bnCAD_Server & "\apps\global\cablecat\WIBU\WkRuntime64\Setup64.exe", @TempDir)
EndIf
_testinstall()
EndFunc
MfG
Alex