Показать полную графическую версию : Нужен скрипт для запаковки 7zip
Dartrolton
20-03-2016, 14:20
Нужно запаковать через 7zip все файлы в каждом подкаталоге одного каталога по именам
к примеру
katalog\
podkatalog1\
file1.png
file2.png
podkatalog2\
file3.txt
podkatalog3\
file4.tga
должно вывести такой же каталог, только каждый из этих файлов по папкам должен быть запакован с таким же именем и расширением через 7зип
katalog\
podkatalog1\
file1.png
file2.png
podkatalog2\
file3.txt
podkatalog3\
file4.tga
Только все файлы должны быть запакованы(но не папки)
Есть такое, делал для себя, только для rar. Можно переделать, впиши команды из 7z и все:
rem Батник принимает в параметре путь к папке. Будут запакованы все файлы во всех нижестоящих папках по нужному расширению.
rem Запрашивает расширение файлов для упаковки. Вводим расширение без точки
rem например: doc
rem или: fb2
rem и т.д.
rem --------------------------------------------------------------
rem Если не указан путь к папке то ошибка и выход.
@echo off
@chcp 1251
@rem recursive Packing (move) files to archive in subfolders -
@rem filename == archivename
@rem check parameters
@if "%~1"=="" goto :NoParam
@chdir /d %1
@if %errorlevel% neq 0 goto :NoParam
@if exist packErr.log del packErr.log
echo ^---------------------------------------------------
echo.
set /p ext=[ Enter file Extensions for Packing ] :
rem main loop
rem тут прописать путь до архиватора, там где после ) do ("путь_до_архиватора" <параметры> "%%~dpni".rar "%%i")
for /f "delims=%%" %%i in ('dir /s /b *.%ext%') do ("%~dp0..\Plugins\arc\rar.exe" m -m5 -ep -ri3 "%%~dpni".rar "%%i") 2>packErr.log
if exist packErr.log start "%SYSTEMROOT%\notepad.exe" packErr.log
exit
exit
:NoParam
echo.
ECHO ================= %~n0. Command line error: "%*"
pause
EXIT /B 1
и для распаковки в сквозную всех рахивов rar из теущей папки в вниз:
@echo off
chcp 1251
rem recursive UNpack archives in folder and then delete archives
rem check parameters
if "%~1"=="" goto :noparam
chdir /d "%~1"
if %errorlevel% neq 0 goto :noparam
if exist unperror.log del unperror.log
rem main loop
echo ======= Работаю ...
@for /f "delims=%%" %%i in ('dir /S /b *.rar') do (
%~dp0..\Plugins\arc\rar.exe e -u "%%~fi" "%%~dpi" && del "%%~fi"
) 2>>unperror.log
echo ^=============================================================
if exist unperror.log start "" notepad.exe unperror.log
echo ^=============================================================
pause
exit
exit
:noparam
echo.
echo =============== %~n0. Command line error: "%*"
echo.
pause
exit /B 1
У меня эти скрипты в ТоталКоммандер повешены на две кнопки обе с параметром "%P" . Полезно для книг распаковки\запаковки и др. всего.
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.