Podpora :: RAR Support

2016-11-28 21:47:50
Jiří Šála
hromadná extrakce souborů

Dobrý den,

je nějaký způsob jak provést hromadnou extrakci souborů v celé adresářové struktuře?

Mám velkou spoustu složek (stovky) a v každé několik archivů. Potřeboval bych rozbalit všechny archivy najednou tak, aby rozbalené soubory zůstaly v adresářové struktuře tam, kde byly původní archivy a navíc se vždy rozbalily do podsložky s názvem archivu.

Ve složce Data mám např složky pojmenované Fotky01 až Fotky99. V každé z těchto složek mám několik archivů pojmenovaných vždy pokus01 až pokus10. Jak zajistím, abych celé rozbalení mohl provést najednou a tak, aby se všechny soubory rozbalily do přislušných složek Data/Fotkyxx/pokusxx?

Děkuji za odpověď

Jiří Šála

2016-12-06 16:23:01
vratislav.hirs@rompa.cz
Re: hromadná extrakce souborů

Dobrý den,

mohla by Vám pomoci dávková úloha podobná té, kterou používám pro zálohování.

Přikládám z ní fragment pro inspiraci.

Pozornost věnujte zejména vnořeným cyklům for /D, které by měly pomoci Váš problém vyřešit.

:full
rem *** plná záloha jen v pátek (1.-4. v měsíci) ******************* start
FOR /F %%w IN ('%runfold%\OUTTIME.exe Ww') DO SET Den17=%%w

rem *** den v tydnu definujeme zde ***
if "%Den17%" NEQ "Sa" goto diff

FOR /F %%w IN ('%runfold%\outtime.exe MM') DO SET MES=%%w_full-Fr-%week%_%from0%_%ver%
rd /S /Q %MES%
md %MES%
del %MES%\*.rar /S /Q
echo. >> %prot%
%runfold%\outtime.exe >> %prot%
echo Záloha disku %from% FULL BACKUP --------------------------------- >> %prot%

net use %from% /delete >> %prot%
net use %from% %sserver%\%sfolder% /YES >> %prot%
net use >> %prot%
rem md %MES%\%sfolder%
%from%
cd \
echo nekomprimují se přípony %nocompress% >> %prot%

for /D %%j in (*) do (set adr=%%j
md %mech%\%fold%\%mes%\%%j
%runfold%\outtime.exe >> %prot%
echo %runfold%\rar%ver% a -ac -ep2 -r- -rr -se -o+ -m5 -ma5 -qo+ -idcdp %nocompress% -ilog%prot%  %mech%\%fold%\%MES%\%%j\_%%j.rar   %from%\%%j\ >> %prot%
     %runfold%\rar%ver% a -ac -ep2 -r- -rr -se -o+ -m5 -ma5 -qo+ -idcdp %nocompress% -ilog%prot% "%mech%\%fold%\%MES%\%%j\_%%j.rar" "%from%\%%j\"
if %errorlevel% neq 0 echo ***** errorlevel ukoncení byla chyba %errorlevel% *****

cd %%j
for /D %%i in (*) do (set adr=%%i
%runfold%\outtime.exe >> %prot%
echo %runfold%\rar%ver% a -ac -ep2 -r  -rr -se -o+ -m5 -ma5 -qo+ -idcdp %nocompress% -ilog%prot%  %mech%\%fold%\%MES%\%%j\%%i.rar   %from%\%%j\%%i\ >> %prot%
     %runfold%\rar%ver% a -ac -ep2 -r  -rr -se -o+ -m5 -ma5 -qo+ -idcdp %nocompress% -ilog%prot% "%mech%\%fold%\%MES%\%%j\%%i.rar" "%from%\%%j\%%i\"
if %errorlevel% neq 0 echo ***** errorlevel ukoncení byla chyba %errorlevel% *****
)
cd ..
)

%runfold%\outtime.exe >> %prot%
echo Síťové složky (%from%) uloženy >> %prot%

rem vrátím se do cílové složky
%mech%
cd \%fold%
%runfold%\outtime.exe >> %prot%
net use %from% /delete >> %prot%
rem *** plná záloha jen v pátek (1.-4. v měsíci) ******************* konec
goto diff