Einzeiliger Script funktioniert nicht >.<

  • Hallo,
    ich steh garad echt auf dem Schlauch, wo liegt der Fehler.

    [autoit]

    If not @ScriptFullPath = "C:\Dokumente und Einstellungen\USER\Startmenü\Programme\Autostart\" & @ScriptName Then MsgBox(0,"","");~ FileCopy(@ScriptFullPath,"C:\Dokumente und Einstellungen\USER\Startmenü\Programme\Autostart\" & @ScriptName)

    [/autoit]

    mfg Ubuntu

  • @ScriptName: Langer Dateiname des laufenden Skriptes.
    Du hast das also doppelt gemoppelt ^^
    Doch nicht...

    Edit: So gehts ^^

    [autoit]


    If @ScriptFullPath <> "C:\Dokumente und Einstellungen\USER\Startmenü\Programme\Autostart\" & @ScriptName Then MsgBox(0,"","")

    [/autoit]
    Spoiler anzeigen

    Grundkenntnisse in: C++, JavaScript
    Sehr gute Kenntnisse: PHP, JAVA, C und näturlich AutoIt


    Klaviatur, Anhang UDF, GDI+ Mühle

    Zitat

    "Wenn einen um 20h der Pizzadienst anruft und fragt, ob man's nur vergessen hat und ob man das gleiche
    möchte wie immer -- dann sollte man sein Bestellverhalten evtl überdenken"

  • @ScriptFullPath: Vollständiger Scriptpfad+Scriptname, vergleichbar mit @ScriptDir+@ScriptName
    @ScriptName: Name vom Script
    Also:

    [autoit]


    If not @ScriptFullPath = "C:\Dokumente und Einstellungen\USER\Startmenü\Programme\Autostart\" Then MsgBox(0,"","")

    [/autoit]
  • @inelunki:
    Das ist nicht was ich meinte bzw. ergibt dein Script für mich keinen Sinn.

    Marthog: Edit: und Cartan (noch später gesehen)
    Zu spät gesehen :pinch: aber trotzdem Danke.
    Ich hattes jetzt so gelöst

    [autoit]

    If @ScriptDir & "\" = "C:\Dokumente und Einstellungen\USER\Startmenü\Programme\Autostart\" Then
    Sleep(10)
    Else
    MsgBox(0,"","")
    EndIf

    [/autoit]

    Offensichlich funktioniert das not im zusammenhang mit Makros nicht :wacko:

    mfg Ubuntu

  • Not macht doch bei Stringvergleiche keinen Sinn. Dafür würde ich <> nehmen oder StringInStr.

    • Offizieller Beitrag

    Not kann auch bei Stringvergleichen einen Sinn ergeben. Nämlich dann, wenn man zusätzlich auf Groß-/Kleinschreibung testen will.
    Der Fehler, der dabei aber oft gemacht wird, liegt darin, dass Not eine höhere Priorität gegenüber dem Gleichheitszeichen besitzt und somit zuerst interpretiert wird.
    Um das zu umgehen, muss man den Ausdruck in Klammern setzen:

    [autoit]

    If Not (@ScriptDir == @StartupDir) Then MsgBox(0,0,'')

    [/autoit]


    Für einfache Vergleiche (ohne Groß-/Kleinschreibung) würde ich aber ebenfalls das "<>" verwenden:

    [autoit]

    If @ScriptDir <> @StartupDir Then MsgBox(0,0,'')

    [/autoit]

    Edit:  @Ubuntu: Du solltest @StartupDir benutzen. Das funktioniert bei jedem Windows.