PDF로 가득 찬 폴더가 있고 각 파일을 개별적으로 Winraring하는 데 지쳤습니다. 나는 그것들을 모두 하나의 아카이브에 넣고 싶지 않습니다.
Winrar가 최선의 방법으로 파일을 압축하도록 하고, .rar을 만든 후 파일을 삭제한 후 다음 파일에 대해 동일한 작업을 수행하는 데 사용할 수 있는 명령줄이 없습니까?
답변1
예, WinRAR 설치 폴더에 rar.exe 실행 파일이 있습니다. 매개변수 없이 실행하면 사용법에 대한 전체 도움말이 표시됩니다. 예를 들어 -m5 스위치를 사용하여 최상의 압축 수준을 설정합니다.
말했듯이 배치/셸 스크립트는 이를 수행하는 좋은 방법이지만 비슷한 목표를 가진 이 프로젝트가 흥미로울 수도 있습니다.http://code.google.com/p/autorar/.
답변2
이것은 rar 아카이버(winrar5 형식)를 사용하여 각 파일을 개별적으로 압축하기 위해 작성한 스크립트입니다. 폴더의 모든 *.pdf 파일을 개별적으로 압축하려면 이 스크립트를 .bat 파일에 넣은 다음 실행해야 합니다. 먼저 파일이 있는 시작(루트) 디렉터리를 지정한 다음 해당 디렉터리에서 찾아 압축할 확장명을 지정할 수 있습니다(재귀 검색, 루트 디렉터리의 하위 디렉터리 입력).
@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