Installationsorder 32 und 64Bit, Error Then

  • Hey,

    [autoit]

    ;Installationsordner für 32Bit-Systeme (Windows 2000, XP und Vista (32-Bit))
    $InstallDirX86 = @ProgramFilesDir & "\XXXX\XXXX"
    ; Installationsordner für 64Bit-Systeme (XP und Vista (64-Bit))
    $InstallDirX64 = @HomeDrive & "\Programme (x86)\XXXX\XXXX"

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

    If @OSArch = "X86" Then
    $InstallDirX86 = $InstallDir
    EndIf

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

    If @OSArch = "X64" Then
    $InstallDirX64 = $InstallDir
    EndIf

    [/autoit]

    Kann ich wenn jemand oben eine Falsche InstallDir eingibt(falsche Syntax etc.), das das Script nicht stop sondern einfach die Default InstallDir nimmt???

  • [autoit]

    If @OSArch = "X86" Then
    $InstallDirX86 = $InstallDir
    If @error Then
    Default
    EndIf
    EndIf

    [/autoit]

    Ich mein so in der Art er gibt einen Fehlercode aus, also müsste das so in die Richtung gehen.

    • Offizieller Beitrag
    [autoit]

    If @OSArch = "X86" Then
    $InstallDirX86 = $InstallDir
    If @error Then
    Default
    EndIf
    EndIf

    [/autoit]

    Ich mein so in der Art er gibt einen Fehlercode aus, also müsste das so in die Richtung gehen.


    Ich verstehe jetzt nicht was du eigentlich willst . Wieso willst du da auf Fehler abfragen ?
    Ausserdem ist mir aufgefallen das du die InstallDir zuweisung in die falsche Richtung machst .Da würde vollkommen ausreichen :

    [autoit]

    If @OSArch = "X86" Then $InstallDir = $InstallDirX86

    [/autoit]

    In deinem Code würdest du der Variable $InstallDirX86 den Inhalt von $InstallDir zuweisen .

  • Mach doch einfach

    [autoit]

    Switch @OSArch
    Case "X86"
    $InstallDir = $InstallDirX86
    Case "X64"
    $InstallDir = $InstallDirX64
    Case Else
    $InstallDir = "xxxx/xxxx/xx"
    EndSwitch

    [/autoit]
  • Also erst mal ein großes Danke für die tollen Antworten.

    Also ich würde gerne das im Script auf Fehler der Syntax (in dem Fall in der InstallDir) eine Spezieler Wert genomen wird.

    [autoit]

    ;Installationsordner für 32Bit-Systeme (Windows 2000, XP und Vista (32-Bit))
    $InstallDirX86 = @ProgramFilesDir & "\XXXX\XXXX
    ; Installationsordner für 64Bit-Systeme (XP und Vista (64-Bit))
    $InstallDirX64 = @HomeDrive & "\Programme (x86)\XXXX\XXXX

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

    If @OSArch = "X86" Then
    $InstallDirX86 = $InstallDir
    ElseIf @OSArch = "X64" Then
    $InstallDirX64 = $InstallDir
    EndIf

    [/autoit]

    Oben sieht man das jeweils ein " fehlt, das sollte überprüft werden und dann ein Default-Wert genomen werde, im falle eines Fehlers

  • prüfe das doch einfach mit FileExist

    Spoiler anzeigen
    [autoit]

    ;Installationsordner für 32Bit-Systeme (Windows 2000, XP und Vista (32-Bit))
    $InstallDirX86 = @ProgramFilesDir & "\XXXX\XXXX
    ; Installationsordner für 64Bit-Systeme (XP und Vista (64-Bit))
    $InstallDirX64 = @HomeDrive & "\Programme (x86)\XXXX\XXXX

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

    If @OSArch = "X86" Then
    If Not FileExists($InstallDirX86) Then $InstallDirX86 = $DefaultInstallDirX86
    $InstallDirX86 = $InstallDir
    ElseIf @OSArch = "X64" Then
    If Not FileExists($InstallDirX64) Then $InstallDirX64 = $DefaultInstallDirX64
    $InstallDirX64 = $InstallDir
    EndIf

    [/autoit]

    MfG Schnuffel

    "Sarkasmus ist die niedrigste Form des Witzes, aber die höchste Form der Intelligenz."
    Val McDermid

    ein paar Infos ...

    Wer mehr als "nur" Hilfe benötigt, kann sich gern im Forum "Programmieranfragen" an uns wenden. Wir helfen in allen Fällen, die die Forenregeln zulassen.

    Für schnelle Hilfe benötigen wir ein ! lauffähiges ! Script, dass wir als Demonstration des Problems testen können. Wer von uns erwartet ein Teilscript erstmal lauffähig zu bekommen, der hat
    1. keine wirkliche Not
    2. keinen Respekt vor Menschen die ihm in ihrer Freizeit Ihre Hilfe anbieten
    3. oder ist einfach nur faul und meint wir coden das für ihn

    In solchen Fällen erlaube ich mir, die Anfrage einfach zu ignorieren. ;)