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