LZMA benutzen

  • Hallo zusammen,
    ich war auf der Suche nach einer Möglichkeit Dateien/Odner mit Autoit zu komprimieren, und so wenig wie möglich externe Tools zu benutzen. Dabei bin auch auf die LZMA SDKgestoßen, die eine klasse Performance hat, und Opensource ist.
    Ich hab zwar die Parameter, aber ich bekommes nicht hin mit Run(@ComSpec... einen Ordner zu komprimieren(Immer "Incorrect command" als Fehler der lzma.exe, diese verwende ich)

    Spoiler anzeigen


    Mit freundlichem Gruß,

    Vinschni

  • Hallo.

    Wie ist denn bis dato der Script, denn dann kann man schauen wo evtl. der Fehler liegt.

    Alina

    Lieben Gruß,
    Alina

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

    Geheime Information: ;)
    k3mrwmIBHejryPvylQSFieDF5f3VOnk6iLAVBGVhKQegrFuWr3iraNIblLweSW4WgqI0SrRbS7U5jI3sn50R4a15Cthu1bEr

  • Der Packbefehl, den ich nach den Parametern gebaut hab lautet so(meine Pfade halt):

    [autoit]

    Run(@ComSpec & ' /k lzma.exe e: "E:\Programme\Autoit\" "E:\a.7z"')

    [/autoit]


    Die restlichen Parameter sind mir erstmal Wurst, die kann ich benutzen wenn der Rest funktioniert.

    Grüße,


    Vinschni

  • Hallo Vinschni.

    Also wieso benutzt Du nicht 7z als Packer. es baut doch genau darauf auf und dann geht es nämlich so:

    Spoiler anzeigen
    [autoit]


    ; über die Suchfunktion gefunden !!!
    ; Suchbegriff: packen
    ;
    $zip = '7z a -tzip ' ; Pfad zu 7zip
    $archiv = 'archiv.zip ' ; Name des zu erstellenden ZIP-Archivs (anpassen)
    $pfad = Chr(34) & @ScriptDir & '\test\' & Chr(34); Verzeichnis das gepackt werden soll (anpassen)
    RunWait(@ComSpec & ' /c ' & $zip & $archiv & $pfad, @ScriptDir, @SW_HIDE)

    [/autoit]

    Evtl. das @SW_HIDE weg lassen, da es da Probleme geben könnte.

    Alina

    Lieben Gruß,
    Alina

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

    Geheime Information: ;)
    k3mrwmIBHejryPvylQSFieDF5f3VOnk6iLAVBGVhKQegrFuWr3iraNIblLweSW4WgqI0SrRbS7U5jI3sn50R4a15Cthu1bEr

  • Ja Alina,
    das kenn ich, aber dazu müsste ich ja 7zip als installiert voraussetzen und das kann ich nicht machen. Kann sich vielleicht einfach nochmal jemand die Parameter anschauen, vielleicht steh eich einfach auf'm Schlauch und es is ganz einfach :( . Ich besteh ja auch nicht auf die LZMA, aber ich finde beim besten Willen keine Möglichkeit mit Autoit nicht kaputte Archive herzustellen (mithilfe einer DLL). Ich habe hier(download)eine klasse UDF gefunden, die bei mir jedoch nur Fehler ausgibt. Und auch hier gibt es was, das nicht funktioniert. Ich hab alle möglichen Sachen abgegrast kann aber nichts Funktionales finden.

    Mit freundlichen Grüßen,


    Vinschni

  • Du kannst auch die Zip.au3 aus dem englischen Forum nehmen und so deine Dateien komprimieren. Es müsste auch eine Rar.au3 geben, nur ich finde sie z.Z. nicht.

    Link zur Zip.au3 -> Zip.au3

    Mfg
    Jautois

  • Zitat

    Und auch hier gibt es was, das nicht funktioniert.


    Die kenn ich schon ;), wie du meinem Beitrag entnehmen kannst.

    Grüße,


    Vinschni

  • :D du lässt wirklich keine Chance aus den Link zu posten. Ich hab mir die Funktion angesehn, da sie aber 7zip verwendet ist sie nicht brauchbar für mich.

    Vinschni

  • @ Vinschni: Konnte ich nicht sehn.. der Beitrag liegt nur 4 min auseinander .. solange hatte ich das" Antworten-Fenster" offen ;)

  • @Vinschni

    Also ich habe Dir mal eine Anlage gepackt. Vllt. schaust Du mal ob es hilft.
    Du kannst die DLL und EXE Datei der Anlage dann durch FileInstall und FileDelete in Dein Script so mit einbauen, das es nicht fest installiert werden muß.
    Erst die beiden Dateien (DLL und EXE) durch FileInstall temp. auf den PC packen und später dann, nach dem auspacken beim User auch wieder durch FileDelete löschen.
    Ich habe damit sehr gute Erfahrungen gemacht.

    Ich habe in den *au3 Dateien kurz Info dazu geschrieben.

    Bin auf die Rückmeldung gespannt.

    Alina

    Lieben Gruß,
    Alina

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

    Geheime Information: ;)
    k3mrwmIBHejryPvylQSFieDF5f3VOnk6iLAVBGVhKQegrFuWr3iraNIblLweSW4WgqI0SrRbS7U5jI3sn50R4a15Cthu1bEr

  • Hast du eigentlich schon mal an 7ZipPortable gedacht :?: Das kann man so ohne Installation über ein Programm herunterladen...

  • Ich habs jetzt hinbekommen,
    Alinas 7zip-Exe war mein Denkanstoß. Im Internet habe ich die Commandlineversion von 7zip gefunden, die ich schön komfortabel in mein Script mit Fileinstall einbinden kann und mit über @Comspeec ausführen. Der einzige Nachteil is eben, das das Ding 500kb hat und die anderen Zip-libs die ich gefunden habe nur 30kb hatten; naja irgendwo muss man Abstriche machen.

    Hier mal den Aufruf der Commandlineversion:

    [autoit]

    RunWait(@ComSpec & ' /c ' & '7z a -tzip ' & $Archivname & Chr(34) & $Archivpfad & Chr(34) & ' -mx0',$Verzeichnisvon7zaexe,@SW_HIDE)

    [/autoit]


    Und mithilfe dieser Seite bleiben keine Wünsche offen :)
    http://dotnetperls.com/Content/7-Zip-Examples.aspx

    Im Endefekt lag es daran das ich keine Aufrufe hinbekommen habe weil ich bei der Parameterangabe anstatt Chr(34) immer " " gemacht hab :rofl:

    Ich danke euch :) ,


    Vinschni