Mehrere Dateien in mehrere Archive komprimieren?

Mehrere Dateien in mehrere Archive komprimieren?

Ich habe einen Ordner voller PDFs und bin es leid, jede Datei einzeln in Winra zu speichern. Ich möchte sie nicht alle in einem Archiv ablegen.

Gibt es keine Befehlszeile, mit der ich Winrar dazu bringen kann, eine Datei mit der besten Methode zu komprimieren, die Datei nach dem Erstellen der RAR-Datei zu löschen und dann dasselbe für die nächste Datei zu tun?

Antwort1

Ja, es gibt eine ausführbare Datei rar.exe im WinRAR-Installationsordner. Wenn Sie sie ohne Parameter ausführen, erhalten Sie eine vollständige Hilfe zu ihrer Verwendung. Sie können beispielsweise die beste Komprimierungsstufe mit dem Schalter -m5 einstellen.

Wie bereits gesagt, eignen sich Batch-/Shell-Skripte gut dafür, aber vielleicht finden Sie auch dieses Projekt mit ähnlichen Zielen interessant:http://code.google.com/p/autorar/.

Antwort2

Dies ist ein Skript, das ich geschrieben habe, um jede Datei einzeln mit dem Rar-Archiver (WinRar5-Format) zu komprimieren. Um alle *.pdf-Dateien in einem Ordner einzeln zu komprimieren, müssen Sie dieses Skript in eine .bat-Datei einfügen und es dann ausführen. Geben Sie zuerst ein Startverzeichnis (Stammverzeichnis) an, in dem sich Ihre Dateien befinden. Dann können Sie Erweiterungen angeben, die in diesem Verzeichnis gesucht und komprimiert werden sollen (rekursive Suche, Eingabe von Unterverzeichnissen des Stammverzeichnisses).

@echo off

REM -m5 max compression    
REM -md64m dictionary size 64m
REM -s solid
REM -ma5 rar5 format (rar4 - ma4)
REM -y yes to all
REM -t test after packing (if test NOT ok, then files will not be deleted if the -df/-dr specified)
REM -df delete files after successful archivation
REM -ep1 exclude base folder of file from archive
:: %%~nZ - file name extracted from var Z
:: %%~fZ - full path of file+ext from var Z
:: %%~dpZ - disk+path
:: setlocal - use local environment vars
setlocal

:step1
    echo Enter start path where files a located
    set /p rarpath=
    echo.
    :: remove doublequotes from path
    set rarpath=%rarpath:"=%

:check dir exist
    if not exist "%rarpath%" echo   "!!!  [%rarpath%] doesn't exist, please enter correct path  !!!"
    if not exist "%rarpath%" echo.
    if not exist "%rarpath%" goto step1
:::::
:::::
    echo.
    echo Enter which extensions to compress (like *.mp4;*.wmv)
    set /p exten=
    echo.
:::::
:::::
    echo.
    echo Final command: 
    echo for /R "%rarpath%" %%Z in (%exten%) do "%programfiles%\WinRAR\rar.exe" a -ma5 -m5 -s -md64m -t -y -ep1 -df "%%~nZ.rar" "%%~fZ"
    echo.
:::::
:::::
    echo.
    echo Continue? [y/n]
    set /p go=
    if /i %go%==Y goto ok
    if /i %go%==N goto exit

:ok
:: CD to each file's directory, compress file, log output (codepage 866)
set rartime=%time:~0,8%
set rartime=%rartime::=_%
set rartime=%rartime: =%
set rarlog=rar_log_%date%_%rartime%.txt
:: For directories located in current directory
:: for /d %D in (*) do "%programfiles%\winrar\rar.exe" a -ma5 -m5 -s -md64m -t -y -ep1 -df "%D.rar" "%D"

    for /R "%rarpath%" %%Z in (%exten%) do (
        cd /d %%~dpZ
        "%programfiles%\WinRAR\rar.exe" a -ma5 -m5 -s -md64m -t -y -ep1 -df "%%~nZ.rar" "%%~fZ" >> c:\%rarlog% 2>&1
        type c:\%rarlog%
        echo. >> c:\%rarlog%
        echo ----------------------------------------------------------------------------- >> c:\%rarlog%
        echo. >> c:\%rarlog%
    )
    echo.
    echo.
    echo        !!! All Done !!!
    pause
    goto :EOF
    ::EXIT /B 0

:exit
    echo Program terminated
    pause
    goto :EOF

verwandte Informationen