Problem mit Filexits in Kombination mit Java

  • Moin,

    ich werde aus meinem Problem nicht schlau.

    Eigentlich ist es ganz simple, ich will überprüfen ob Datei A existiert, wenn ja soll das Script ablaufen.
    Ich habe zb. folgendes verwendet:

    [autoit]

    If not FileExists("Test.exe") Then
    MsgBox(0,"Autoit Error","Test.exe does not exists")

    [/autoit]

    Test.exe befindet sich im selben Verzeichnis wie das Script und läuft auch ohne Probleme.

    So nun haben wir ein Javaprogramm das per Knopfdruck das gewünschte Script startet, die nebenbei erwähnt allesamt auf einem NAS sind.
    Dann kommt die Sicherheitsabfrage ob die Autoitexe-Datei wirklich gestartet werden will... Adminrechte bestätigen usw.
    Die Autoit Datei startet nun zwar, allerdings kommt die Meldung Test.exe nicht vorhanden.

    Das ist aber nur der Fall wenn die Autoit-Datei über Java aufgerufen wird, rufe ich sie manuell auf dem NAS ab funktioniert alles einwandfrei und das Script läuft ab ohne Fehlermeldung.

    Lasse ich diese Überprüfung einfach weg, dann funktioniert die Autoit-Datei auch über Java - er findet sie also doch ?(
    Habe das ganze noch mit "FileFindFirstFile" getestet mit demselben Ergebnis.

    Was fällt euch dazu ein?

    greez Vamp

    Einmal editiert, zuletzt von Vamp (23. Oktober 2010 um 16:00)

  • Da fehlt ein EndIf aber ich denke das hast du nur vergessen.
    Ansonsten lass dir mal im Skript noch folgendes ausgeben:

    [autoit]

    MsgBox(0,"", "ScriptDir:" & @TAB & @ScriptDir & @CRLF & "WorkingDir:" & @TAB & @WorkingDir)

    [/autoit]

    @Der Doc
    Es wird im WorkingDir danach gesucht - man brauch also keinen kompletten Pfad.

  • Ja Endif hatte ich nur vergessen...^^

    Also das Ergebnis sieht eigentlich korrekt aus:

    ScriptDir: \\NAS\....\ - Pfad der Autoitexe und hier befindet sich auch die Test.exe
    WorkingDir: D:\ - hier befindet sich das Javaprogramm

    Ah es wird nur im WorkingDir gesucht? - Ich teste !


  • ScriptDir: \\NAS\....\ - Pfad der Autoitexe und hier befindet sich auch die Test.exe
    WorkingDir: D:\ - hier befindet sich das Javaprogramm


    Genau das ist der Fehler ;) Wenn man den Pfad nicht mit angibt, wird in @WorkingDir gesucht.

  • Und da fällt dir nichts auf?
    Gibt es im Verzeichnis D:\ etwa eine Test.exe?
    Es wird NICHT im Skriptverzeichnis nach der Test.exe gesucht sondern im Arbeitsverzeichnis!

    2 Möglichkeiten hast du:
    Entweder du änderst das Arbeitsverzeichnis des Skriptes:

    [autoit]

    FileChangeDir ( @ScriptDir )

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

    If not FileExists("Test.exe") Then MsgBox(0,"Autoit Error","Test.exe does not exists")

    [/autoit]


    Oder du setzt den Pfad gleich richtig:

    [autoit]

    If not FileExists(@ScriptDir & "\Test.exe") Then MsgBox(0,"Autoit Error","Test.exe does not exists")

    [/autoit]
  • Ok das wars ja schon.

    Danke für die schnelle Hilfe, dachte zuerst es werden beide durchsucht,habs aber noch gesehen :D - funktioniert nun Problemlos.

    Seltsam das es anfangs trotzdem funktioniert hat, teste sowas eigentlich immer bevor ich jedes einzelne Script anpasse. Tja eigentlich ^^