C(++,Cli)-Library für die dekompression von Archiven?



  • Das geht mit BATCH Dateien?

    Mit Batchfiles geht erstmal gar nichts. Die machen nichts als Programme via Command-Line aufrufen. Also müßten Programme für tar und gzip Files vorhanden sein (auf Unix-Kisten heißen die üblicherweise tar und gunzip). Dann bräuchtest du scheinbar auch noch Programme, die ohne GUI mit rar und zip klarkommen. Wird wohl alles auch für Windows zu beschaffen sein.

    Der Windows-CLI ist übrigens nicht sonderlich leistungsfähig -- vielleicht möchtest du bei der Gelegenheit auf eine Shell aus der Unix-Welt oder auf eine einfache Scriptsprache umsatteln.

    EDIT: Oder auf die Windows PowerShell, die ist angeblich besser als der eingebaute CLI.



  • Erm,... Windows-CLI? Ich meinte die für .NET abgewandelete C++ Sprache C++/CLI^^

    Aufjedenfall habe ich es per Batch datei hingekriegt. Thx 🙂
    Eine Frage noch zur Batch-Datei: Ich habe folgende Zeile, um eine Nachricht auszugeben:

    echo 7-Zip commandline tool (7za.exe) not found. Can't decompress files.
    

    Hier kommt immer die Fehlermeldung:

    "not" ist syntaktisch an dieser Stelle nicht verarbeitbar.
    

    Wenn ich die Nachricht in "" einschließe, geht es, aber die "" erscheinen auch in der Nachricht. Wie kann ich das ändern?

    ----------
    Für die, die es interessiert, wie die Batch Datei aussieht:

    Ich benutzt zum entpacken der .tgz und .zip Dateien die commandline Version von 7-Zip (http://www.7-zip.org/download.html) und für die .RAR Dateien UnRAR (http://www.rarlab.com/rar_add.htm).

    Das eigentliche entpacken wird mit den Befehlen

    MD Temp
    
    FOR /R %%C IN (*.tgz) DO (
        7za e -oTemp "%%C"
        )
    
    FOR /R %%C IN (Temp\*.tar) DO (
        7za e -oTemp "%%C"
        )
    
    FOR /R %%C IN (Temp\*.zip) DO (
        7za e -oTemp -y "%%C"
        )
    
    FOR /R %%C IN (Temp\*.rar) DO (
        unrar e -o+ "%%C" Temp\
        )
    

    erledigt und die verschiedenen Dateien (.utx, .u, .ucl, etc.) per "move" in einen anderen Ordner kopiert (die entpackten Dateien befinden sich alle direkt (!) im Temp Ordner). Klappt hervorragend 😃



  • Gugi schrieb:

    echo 7-Zip commandline tool (7za.exe) not found. Can't decompress files.
    

    Hier kommt immer die Fehlermeldung...

    Probier mal

    echo.7-Zip commandline tool (7za.exe) not found. Can't decompress files.
    


  • @Gugi: 👍

    Siehst du, man braucht nicht für alles C++. Für kleinere Dinge lohnt es sich oft nur Skripte einzusetzen.



  • @hustbaer: Hab ich schon probiert, geht auch nicht 😞 (selber Fehler)
    @Rookie: Ich werds mir merken^^



  • Komisch. Bei mir geht es mit oder ohne "." 🙂



  • Der komplette Abschnitt:

    IF NOT EXIST 7za.exe (
      echo.
      echo ------
      echo "7-Zip commandline tool (7za.exe) not found. Can't decompress files."
      echo ------
      echo.
      GOTO END
    )
    

    Ist aber eigentlich egal, auf die überzähligen "" kann ich leicht hinwegsehen^^

    Thx für die vielen Tipps 🙂



  • Innerhalb der () eines "if" gelten andere Regeln.
    Wenn du es statt () mit "if exist goto blubb" machst, sollte es keine Probleme geben.
    Quasi

    IF EXIST 7za.exe GOTO sevenzip_found
    
    echo. 
    echo.------ 
    echo.7-Zip commandline tool (7za.exe) not found. Can't decompress files.
    echo.------ 
    echo. 
    GOTO END 
    
    :sevenzip_found
    


  • Ah, k, danke 🙂



  • Erm,... Windows-CLI? Ich meinte die für .NET abgewandelete C++ Sprache C++/CLI^^

    Sorry for that, ich meinte CLI = Command Line Interpreter, und hatte diese Bedeutung vorraus gesetzt.


Anmelden zum Antworten