FileRead und @ScriptDir Problem..

  • kleines Problem wieder mal
    Kurze Erklärung:
    Die autoittest.exe liegt in c:\test, die Datei "file.txt" ebenfalls.
    Mein nicht funktionierender Teil des kompilierten Scriptes, sieht folgendermassen aus:

    [autoit]

    $s_String = FileRead(@ScriptDir & "\file.txt")
    $sPattern = 'http://[^"]*'
    $aURL = StringRegExp($s_String, $sPattern, 3)
    _ArrayDisplay($aURL)
    _FileWriteFromArray(@ScriptDir & "\link.txt", $aURL)

    [/autoit]


    Aber file.txt wird nicht gelesen
    Wenn ich nun aber "@ScriptDir & "\file.txt", durch "c:\test\file.txt" ersetze, funktioniert es einwandfrei.
    Was läuft falsch?

  • Hi,

    FileRead:
    Liest eine bestimmte Anzahl von Zeichen aus einer zuvor geöffneten Textdatei (FileOpen()) ! ;)

    Zitat

    Wenn ein Dateiname statt eines Dateihandles angegeben wird, wird die Datei während des Funktionsaufrufes geöffnet und geschlossen.


    ;)

    Lass dir @scriptdir mal in eine MsgBox ausgeben und versuch's auch mal mit #RequireAdmin.

  • Hi,

    FileRead:
    Liest eine bestimmte Anzahl von Zeichen aus einer zuvor geöffneten Textdatei (FileOpen()) ! ;)

    das hat wohl damit nichts zu tun, denn generell gehts ja, nur eben nicht mit "@ScriptDir".
    Wenn ich stattdessen den kompletten Pfad angebe, funktionierts doch ?(

  • @ScriptDir Messagebox, zeigt den richtigen Pfad an.
    es scheint sich eher um ein Timing Problem zu handeln.

    [autoit]

    Run("wget1 -O file.txt " & $wget1 & $wget2.......)
    ProcessWaitClose("wget.exe") ;<-- nach dem einfügen dieser Zeile "scheints jetzt zu laufen
    $s_String = FileRead(@ScriptDir & "\file.txt")
    $sPattern = 'http://[^"]*'
    $aURL = StringRegExp($s_String, $sPattern, 3)
    ; _ArrayDisplay($aURL)
    _FileWriteFromArray(@ScriptDir & "\link.txt", $aURL)
    Run("test.bat") ;<--wurde wohl zu früh gestartet, bevor das andere abgearbeitet war,
    ;wie kann man das verhindern ohne Sleep(irgendwas) Also Run("test.bat") soll erst dann gestartet werden,
    ;wenn link.txt existiert/aktualisiert worden ist ?

    [/autoit]