Форум программистов, компьютерный форум, киберфорум
Batch (CMD/BAT)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.72/47: Рейтинг темы: голосов - 47, средняя оценка - 4.72
1 / 1 / 0
Регистрация: 27.07.2016
Сообщений: 13

7z архивация несколько команд в одном батнике

28.09.2016, 09:43. Показов 9710. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте
есть несколько папок, каждую надо за архивировать и добавить дату например так:
c:\DAT -> dat-27-01-2016.zip
c:\pAT -> pat-27-01-2016.zip
и так далее

как это сделать поочередно, т.е. одну папку в одном батнике я понял, вот пример:

Windows Batch file
1
2
3
4
5
6
7
8
9
10
11
@echo off
 
set now=%TIME:~0,-3%
 
set now=%now::=.%
 
set now=%now: =0%
 
set now=%DATE:~-4%.%DATE:~3,2%.%DATE:~0,2%_%now%
 
"c:\Program Files\7-Zip\7z.exe" a -tzip -ssw -mx5 -r0 -x!*.mdx  f:\777\ARH-BD_%now%.zip @listfile.txt -scsWIN | findstr /I /P /V "Compressing" >> %now%_log_file.txt

собственно вопрос...можно этот процесс организовать в одном батнике? т.е. архивируем первую папку, переходим ко второй..и так далее..

спасибо.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
28.09.2016, 09:43
Ответы с готовыми решениями:

Запустить в батнике несколько программ с перенаправлением вывода в текстовый файл
Друзья! Имеем экзешник main.exe: #include <stdio.h> #include <windows.h> using namespace std; int main () { while (1) { ...

Архивация файла/папки в несколько томов
Здравствуйте. Есть задача заархивировать некий файл/папку, причем должно быть несколько томов. Как делать однотомный архив я посмотрел и...

Несколько сайтов на одном IP и одном OpenServer
Есть OpenServer, на котором стоят два сайта. Можно ли привязать один домен к одному сайту OpenServer, а другой домен к другому? (Оба сайта...

6
Покинул форум
3701 / 1484 / 355
Регистрация: 07.05.2015
Сообщений: 2,903
28.09.2016, 11:03
Windows Batch file
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
@echo off
  setlocal enabledelayedexpansion
    set "now=!date:.=-!_!time::=_!"
    set "now=!now:~,-3!"
    for /f "delims=" %%i in (
      'dir \ /ad /b'
    ) do (
      for /f "tokens=*" %%j in (
        'attrib "%~d0\%%i"'
      ) do (
        set "fld=%%j" % rem отсеиваем системные папки
        if /i "!fld:~0,2!" neq "SH" (
          rem здесь код создания архива для папки
          rem например, такой:
          rem 7za a -mx9 -r "%~d0\%%i.zip" "!fld!\*"
        )
      )
    )
  endlocal
exit /b
1
1 / 1 / 0
Регистрация: 27.07.2016
Сообщений: 13
28.09.2016, 14:27  [ТС]
спасибо за ответ, поясните такой момент, где тут указывать пути к папкам?

исходные

f:\777\
f:\888\
f:\999\

конечная

f:\111\
0
Покинул форум
3701 / 1484 / 355
Регистрация: 07.05.2015
Сообщений: 2,903
28.09.2016, 14:38
zerno777, Вы для начала разберитесь с кодом выше. Он уже перебирает папки самого верхнего уровня, остается только задать параметры сжатия среди которых и конечная папка.
0
1 / 1 / 0
Регистрация: 27.07.2016
Сообщений: 13
28.09.2016, 15:31  [ТС]
поймите мне не нужно перебор всех папок...мне нужны только определенные. в вашем коде я ничего понять не смог)))уровень не тот.

Добавлено через 21 минуту
поясню более развернуть что я хочу.

имеем 7zip
есть несколько папок, каждую надо за архивировать в отдельный архив и добавить дату например так:
c:\DAT -> d:\arh\fdat-27-01-2016.zip
F:\pAT -> d:\arh\pat-27-01-2016.zip
и так далее...

хотелось что бы ВСЁ команды были в одном батнике и выполнялись ПОСЛЕДОВАТЕЛЬНО....т.е. заархивировалась первая папка, потом вторая, третья и так далее.
0
1 / 1 / 0
Регистрация: 27.07.2016
Сообщений: 13
30.09.2016, 09:31  [ТС]
итак правильная постановка задачи)))

имеем 7zip
есть несколько папок, каждую надо за архивировать в отдельный архив в отдельную папку и добавить дату например так:

f:\baza1 - > F:\arx\baza1\baza1_27-01-2016.zip (8 штук)

f:\baza2 - > F:\arx\baza2\baza2_27-01-2016.zip (8 штук)

и так далее...

ВСЁ команды дожны быть в одном файлике и выполнялись ПОСЛЕДОВАТЕЛЬНО....
т.е. за архивировалась первая папка, потом вторая, третья и так далее.

потом посчитались файлы в каждой папке и оставить только энное количество свежих по дате, остальное стереть.

так же пишется лог.

вот решение, добрые люди подсказали:

Windows Batch file
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
@echo off
 
rem архивируем  откуда куда
rem указываем Количество архивов старые стираются
rem лог пишется в папку с архивами
 
 
setlocal enableextensions enabledelayedexpansion
 
call :archive f:\1_from_home\1 F:\777
 
call :archive f:\1_from_home\4 F:\778
 
goto :eof
 
:archive
    :: Количество хранимых архивов
    set /a FileCount = 8
    :: Проверка на существование каталога для сохранения архива
    if NOT exist "%2" (md %2)
    :: Создаем архив и лог-файл
    "C:\Program Files\7-Zip\7z.exe" a -tzip -ssw -mx5 "%2\%~n1_%date:~0,2%-%date:~3,2%-%date:~6,4%" "%1" | findstr /P /I /V "Compressing 7-Zip" >> "%2\log_file.%date%.txt"
    :: Проверяем кол-во архивов и удаляем старый
    for /f "skip=%FileCount% usebackq delims=" %%i in (
        `dir /b /a:-d /o:-d /t:w "%2\*.zip"`
    ) do del /f /q "%2\%%~i"
    goto :eof
0
21 / 19 / 4
Регистрация: 15.01.2015
Сообщений: 202
30.09.2016, 12:51
Windows Batch file
1
2
3
4
5
6
7
8
9
chcp 1251
rem *** путь откуда барть файлы и каталоги ***
set file="%cd%\files"
rem *** путь куда класть архивы ***
set arhiv="%cd%\arhives"
rem *** поиск и архивация файлов ***
for %%g in (%file%\*) do call "%cd%\7zip.exe" a "%arhiv%\%%~ng_%date%.7z" %%g
rem *** поиск и архивация каталогов ***
for /d %%g in (%file%\*) do call "%cd%\7zip.exe" a "%arhiv%\%%~ng_%date%.7z" %%g
Если я правильно понял задачу достаточно будет менять значение переменной %flie%
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
30.09.2016, 12:51
Помогаю со студенческими работами здесь

Как сделать несколько функций в одном срр ?Написал программы, которые нужно поочередно запустить в одном срр
#include <iostream> void func(double& x,double& y) { double temp_min = (x + y) / 2.0;; if(x == std::min(x,y)) { ...

Несколько команд
Никогда не получалось выполнить несколько запросов через ";" делал так begin ZQueryBiotor.SQL.add('создать БД;'); ...

Как совместить запуск команд от root и обычного пользователя в одном сценарии
Как совместить запуск команд от root и обычного пользователя в одном сценарии Пример #!/usr/bin/env bash suu(){ sudo -s ...

Склеиваются несколько команд
Здравствуйте, при отправке сообщений через сокет {клиент} for i:=1 to autorization do begin if ((users.Ip<>s) and...

Несколько команд в cmd
Мне нужно через консоль c# запустить cmd и выполнить в нем несколько команд. Сколько я не искал в гугле - везде находил скрипты только на...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru