Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   Нужен скрипт для запаковки 7zip (http://forum.oszone.net/showthread.php?t=312920)

Dartrolton 20-03-2016 14:20 2617972

Нужен скрипт для запаковки 7zip
 
Нужно запаковать через 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
Только все файлы должны быть запакованы(но не папки)

x0r 20-03-2016 20:25 2618066

Есть такое, делал для себя, только для 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" . Полезно для книг распаковки\запаковки и др. всего.


Время: 18:47.

Время: 18:47.
© OSzone.net 2001-