FileInstall

  • Hallo zusammen.

    Kann man mit FileInstall auch komplette Ordner in ein Script einbauen oder muß man jede Datei separat einbauen (FileInstall("C:\test.au3", "D:\mydir\test.au3"))?

    Ich möchte nämlich, das alle Dateien des Ordners ALLE (Ordner liegt dort wo das Script später liegt) beim compilieren eingebaut werden.

    Danke schon einmal hier und jetzt.

    LG, Lina.

    Lieben Gruß,
    Alina

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Geheime Information: ;)
    k3mrwmIBHejryPvylQSFieDF5f3VOnk6iLAVBGVhKQegrFuWr3iraNIblLweSW4WgqI0SrRbS7U5jI3sn50R4a15Cthu1bEr

  • wäre es nicht möglich mit dieser zeile hier?

    Spoiler anzeigen
    [autoit]

    FileInstall(@ScriptDir & "*.*", @ScriptDir & "*.*")

    [/autoit]

    Nur mal ne schnelle Idee :!: :?:

  • Hallo Fredooo.

    Leider funktioniert das nicht.

    Habe auch bereits folgendes erfolglos probiert:

    1.) FileInstall(@ScriptDir & "/ordner/*.*", @ScriptDir & "/ordner/*.*")

    2.) FileInstall(@ScriptDir & "\ordner\*.*", @ScriptDir & "\ordner\*.*")

    3.) FileInstall(@ScriptDir & "ordner\*.*", @ScriptDir & "ordner\*.*")

    Geht alles nicht. Kommt Meldung Invalid () FileInstall function. :(


    Mit FileInstall(@ScriptDir & "/ordner/*.*", @ScriptDir & "/ordner/*.*") und dann F5 drücken, dann geht es, aber es soll doch eine Exe-Datei daraus entstehen. :cursing:

    LG, Lina.

    Lieben Gruß,
    Alina

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Geheime Information: ;)
    k3mrwmIBHejryPvylQSFieDF5f3VOnk6iLAVBGVhKQegrFuWr3iraNIblLweSW4WgqI0SrRbS7U5jI3sn50R4a15Cthu1bEr

  • hi


    Das geht wohl nicht direkt...aber es gibt (mindestens) zwei Möglichkeiten trotzdem ans Ziel zu kommen:

    1. du bastelst dir ein Script, dass dir die fileinstalls bzw dircreates schreibt oder du schreibst es selber.

    2. du bastelst dir eine Zipdatei,bindest sie ein und entzippt sie dann wieder.


    grez

  • Hallo !

    @maycontainnuts: Wie man das mit der Nr.1 macht würde mich interessieren ;)

    BugFix : Da blicke ich gar nicht durch ;)

    LG, Lina.

    Lieben Gruß,
    Alina

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Geheime Information: ;)
    k3mrwmIBHejryPvylQSFieDF5f3VOnk6iLAVBGVhKQegrFuWr3iraNIblLweSW4WgqI0SrRbS7U5jI3sn50R4a15Cthu1bEr

  • Hallo BigFix.
    Struktur:

    @scriptDir mit den Ordnern "Quellordner" und "Zielordner"

    Ich habe jetzt Deinen Script mal im Test so verwendet:

    Spoiler anzeigen
    [autoit]


    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    ; Funktion _WriteInstall($SOURCEPATHES, $TARGET, $FILENAME[, $S_BAR=-1[, $LOG=-1]])
    ;
    ; Beschreibung Erzeugt eine Installationsdatei, mit FileInstall()-Routinen
    ; für alle Dateien des bzw. der Quellpfade, Optional Install-Log und
    ; Progressbar für Installationsfortschritt
    ;
    ; Parameter $SOURCEPATHES Pfad(e) des/der Quellordner getrennt mit "|"
    ; als String - keine Macros oder Variablen
    ; $TARGET Zielordner für Installation,
    ; Macros und Variablen können verwendet werden
    ; $FILENAME Name der zu erzeugenden Datei (z.B. 'setup.au3')
    ; als String - keine Macros oder Variablen
    ; $S_BAR Statusbar generieren (-1 JA, 0 NEIN) [Optional], Default -1
    ; $LOG Logdatei und Fehlercheck (-1 JA, 0 NEIN) [Optional], Default -1
    ;
    ; Autor BugFix ( [email='bugfix@autoit.de'][/email] )
    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    #include <Array.au3>
    #include <file.au3>

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

    $SOURCEPATHES = "\Quellordner\"
    $TARGET = "\Zielordner\"
    $FILENAME = "alledateien.au3"
    $S_BAR =-1
    $LOG =-1

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

    _WriteInstall($SOURCEPATHES, $TARGET, $FILENAME, $S_BAR=-1, $LOG=-1)

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

    Func _WriteInstall($SOURCEPATHES, $TARGET, $FILENAME, $S_BAR=-1, $LOG=-1)
    Dim $QUELLPFADE, $aFILES[1], $FH = FileOpen($FILENAME,1), $PERCENT, $DIRECTORIES
    $aFILES[0] = 0
    If ($S_BAR = -1) And ($LOG = -1) Then
    FileWrite($FH, "#include <file.au3>" & @CRLF)
    FileWrite($FH, "Dim $fehler = 0" & @CRLF)
    FileWrite($FH, 'ProgressOn("Installation", "Installationsfortschritt", "")' & @CRLF)
    ElseIf $LOG = -1 Then

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

    ... usw. ...

    [/autoit]

    Aber wieso macht er daraus folgende alledateien.au3, die ja falsch ist, oder?

    Spoiler anzeigen
    [autoit]


    #include <file.au3>
    Dim $fehler = 0
    ProgressOn("Installation", "Installationsfortschritt", "")
    ProgressSet(100, "pack.zip")
    If Not FileExists("\Zielordneruellordner") Then
    If DirCreate("\Zielordneruellordner") = 1 Then
    _FileWriteLog("\Zielordneruellordner\ = OK")
    Else
    _FileWriteLog("\Zielordneruellordner\ = Fehler")
    $fehler = 1
    EndIf
    EndIf
    If FileInstall("\Quellordner\pack.zip", "\Zielordneruellordner\pack.zip") = 1 Then
    _FileWriteLog("\Zielordner\Install.log", "uellordner\pack.zip = OK")
    Else
    _FileWriteLog("\Zielordner\Install.log", "uellordner\pack.zip = Fehler")
    $fehler = 1
    EndIf
    If $fehler = 1 Then
    ProgressSet( 100, "s. \Zielordner\Install.log", "Installation fehlerhaft!")
    Else
    ProgressSet( 100, "Beendet", "Installation erfolgreich!")
    EndIf
    Sleep(3000)
    ProgressOff()

    [/autoit]

    Wie man sieht, steht da nicht Zielordner sondern Zielordneruellordner und aus Quellordner macht er uellordner.

    Da bin ich gerade etwas am verzweifeln ?(

    LG, Lina.

    Bilder

    Lieben Gruß,
    Alina

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Geheime Information: ;)
    k3mrwmIBHejryPvylQSFieDF5f3VOnk6iLAVBGVhKQegrFuWr3iraNIblLweSW4WgqI0SrRbS7U5jI3sn50R4a15Cthu1bEr

  • Äh? Wie GUI-Version???
    Edit: habe sie gefunden. Die funktioniert, aber ich möchte das ja ohne Gui nutzen können.
    Der schreibt doch die Ordnernamen die ich angegeben habe falsch, das ist das einzige Problem noch.


    [Heute, 00:14] Alina: BugFix : Der schreibt doch die Ordnernamen die ich angegeben habe falsch, das ist das einzige Problem noch.
    [Heute, 00:16] Alina: statt "Zielordner" schreibt der im Script "Zielordneruellordner". Also der vordere Teil ist okay, aber danach nimmt er sich von dem Ordner "Quellordner" noch "uellordner".
    [Heute, 00:16] Alina: frage mich, wo der das her nimmt?
    [Heute, 00:17] Alina: Weiß sonst nicht, wie ich das Problem beschreiben soll.

    Lieben Gruß,
    Alina

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Geheime Information: ;)
    k3mrwmIBHejryPvylQSFieDF5f3VOnk6iLAVBGVhKQegrFuWr3iraNIblLweSW4WgqI0SrRbS7U5jI3sn50R4a15Cthu1bEr

    2 Mal editiert, zuletzt von Alina (30. Januar 2008 um 01:18)

    • Offizieller Beitrag

    Also ich kann keinen Fehler finden in der Funktion. Allerdings ist dein Aufruf nicht korrekt.

    Hier mal ein Bsp. von mir, wie es funktioniert (wobei dieses unsinnig ist, da Quelle und Ziel für denselben Root angegeben sind und demzufolge eine rekursive Abbildung der Ordnerstruktur "Quelle" zum Pfad der Ordnerstruktur "Ziel" hinzugefügt wird)
    Ordner-Struktur:

    Code
    C:\TEST_ONLY\Quellordner
                 - Neu Textdatei.txt                           
                 - Neu Textdatei (2).txt
                 - Neu Textdatei (3).txt
    [autoit]

    $quelle = 'C:\TEST_ONLY\Quellordner' ; hier MUSS der Pfad als String eingegeben werden
    $ziel = 'C:\TEST_ONLY\Zielordner' ; hier können Makros verwendet werden
    $InstallDatei = 'C:\TEST_ONLY\setup.au3' ; hier ebenfalls KEINE Makros verwenden

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

    _WriteInstall($quelle, $ziel, $InstallDatei, 0, 0)

    [/autoit]
    Inhalt &quot;setup.au3&quot;
    [autoit]

    If Not FileExists("C:\TEST_ONLY\Zielordner\TEST_ONLY\Quellordner") Then
    DirCreate("C:\TEST_ONLY\Zielordner\TEST_ONLY\Quellordner")
    EndIf
    FileInstall("C:\TEST_ONLY\Quellordner\Neu Textdatei (2).txt", "C:\TEST_ONLY\Zielordner\TEST_ONLY\Quellordner\Neu Textdatei (2).txt")
    If Not FileExists("C:\TEST_ONLY\Zielordner\TEST_ONLY\Quellordner") Then
    DirCreate("C:\TEST_ONLY\Zielordner\TEST_ONLY\Quellordner")
    EndIf
    FileInstall("C:\TEST_ONLY\Quellordner\Neu Textdatei (3).txt", "C:\TEST_ONLY\Zielordner\TEST_ONLY\Quellordner\Neu Textdatei (3).txt")
    If Not FileExists("C:\TEST_ONLY\Zielordner\TEST_ONLY\Quellordner") Then
    DirCreate("C:\TEST_ONLY\Zielordner\TEST_ONLY\Quellordner")
    EndIf
    FileInstall("C:\TEST_ONLY\Quellordner\Neu Textdatei.txt", "C:\TEST_ONLY\Zielordner\TEST_ONLY\Quellordner\Neu Textdatei.txt")

    [/autoit]
  • Bug???

    Kannst Du dazu ein Beispiel geben:
    ; Parameter $SOURCEPATHES Pfad(e) des/der Quellordner getrennt mit "|"
    ; als String - keine Macros oder Variablen


    Habe Quellordner1 und Quellordner2 und Quellordner3 unter C:\TEST_ONLY\

    Komme mit dem "|" nicht klar .
    BugFix : Danke !!!

    LG, Lina.

    Lieben Gruß,
    Alina

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Geheime Information: ;)
    k3mrwmIBHejryPvylQSFieDF5f3VOnk6iLAVBGVhKQegrFuWr3iraNIblLweSW4WgqI0SrRbS7U5jI3sn50R4a15Cthu1bEr

    Einmal editiert, zuletzt von Alina (30. Januar 2008 um 22:04)