Eingebundene Dateien verwenden

  • Hi Leute,

    ich bin mit meinem Thema allmählich am verzweifeln, ist es wahrscheinlich doch total leicht zu lösen.

    Trotzdem habe ich nach fast 2h googlen mein Problem nicht in den Griff bekommen.

    Ganz einfach, ich erstelle eine Anwendung, die Dateien von A nach B kopiert und anschließend zippt.

    Das klappt auch alles einwandfrei.

    Allerdings möchte ich die 7ZIP Files auch einbinden, sodass ich nur eine EXE zur Verfügung stellen muss.

    Aus dem Skript heraus soll dann auf die eingebundenen 7ZIP Files für den ZIP-Vorgang zugegriffen werden.

    Erst hatte ich die Files im Wrapper unter "Res Add Files" angegeben. Nach einigem recherchieren bin ich dann auf die FileInstall Funktion gestoßen.

    Das Einbinden klappt auch, das EXE File ist anschließend entsprechend größer.


    Ich habe gelernt, dass das direkte Ausführen aus dem Memory nicht ganz trivial, aber möglich ist. Also bleibt noch, die Files z.B. in das aktuelle Verzeichnis oder nach TEMP zu entpacken und dort aufzurufen.

    Was ich jedoch nicht herausfinden konnte, wie ich auf die eingebundenen Files zugreifen kann. Es wird einfach immer nach den 7ZIP Files im aktuellen Verzeichnis gesucht. Sind sie dort nicht schon vorhanden, klappt das zippen nicht.


    Wenn ich versuche, die Files in das aktuelle Verzeichnis via FileInstall zu "installieren" klappt es ebenso wenig.

    AutoIt
    ;EXTRACT 7ZIP FILES TO SCRIPT DIR
    FileInstall("7z.exe",@ScriptDir & "\7z.exe", 1)
    FileInstall("7z.dll",@ScriptDir & "\7z.dll", 1)
    
    Local $vZIPcommand = "7z a -r -t7z -mx0 -xr!backup -mx=9 -m0=lzma2 -aoa -ms=on -mhe=on -p'werwerwer' "& $vHostname & "_" &  $vTimeStamp & ".7z " & $vTarget
    RunWait(@ComSpec & " /c " & $vZIPcommand, @ScriptDir)

    Mir ist die Sache echt peinlich denn es kann doch nicht so schwer sein, auf eingebundene Files zuzugreifen ?(

    Kann mir bitte jemand einen Tipp geben, was ich falsch mache? :(

  • Hallo wwasow,

    so mache ich das immer:

    AutoIt
    $Archiv = "c:\Test\Test.zip"
    
    $Output = "c:\Test\Entpackt\
    
    RunWait(@ComSpec & " /c " & @ScriptDir & "\TEMP\7z.exe x " & '"' & $Archive & '"' & " -aoa -y -o" & '"' & $Output & '"')

    Gruß gmmg

  • Hi gmmg,

    danke für deine schnelle Antwort :)
    Allerdings ist das Packen selbst ja nicht mein Problem, das klappt einwandfrei.

    Die Frage ist, wie kann ich die eingebundenen 7ZIP Dateien irgendwo hin packen (z.B. mit FileInstall) und dann dort darauf zugreifen.

    Obiges Beispiel von mir packt die 7ZIP Files leider nirgendwo hin und ich weiß nicht wieso..

  • Aaach jetzt funktioniert es!

    Mit Unterordner (der unbedingt bereits vorhanden sein muss) klappt es jetzt :)


    Kann mir noch jemand erklären, was der Unterschied zwischen der FileInstall Methode und dem Res Add Files im Wrapper ist?