Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » Любой язык - [решено] архивирование с помощью батника

Ответить
Настройки темы
Любой язык - [решено] архивирование с помощью батника

Новый участник


Сообщения: 4
Благодарности: 1

Профиль | Отправить PM | Цитировать


Доброго времени.Подскажите пожалуйста,есть батник for /R %%i in (*.*) do (7z a -tzip "%%i.zip" "%%i" & del "%%i"),есть папка в которой несколько папок.Надо заархивировать только файлы в папках.Не получается.Не сильно в этом силен.Если можно подробнее расписать,то буду благодарен.Спасибо.

Отправлено: 23:59, 16-12-2011

 

Ветеран


Contributor


Сообщения: 2728
Благодарности: 1697

Профиль | Отправить PM | Цитировать


Код: Выделить весь код
@Echo Off
FOR /F "usebackq delims=" %%j IN (`Dir /s /b /A:D`) DO Call :SubDir "%%j"
GoTo :Eof

:SubDir
FOR /F "usebackq delims=" %%i IN (`Dir %1 /b /A:-D`) DO (
     7z a -tzip "%~1\%%i.zip" "%~1\%%i"
     If Exist "%~1\%%i.zip" del "%~1\%%i"
)

-------
Даже самая сложная проблема обязательно имеет простое, лёгкое для понимания, неправильное решение. Каждое решение плодит новые проблемы.


Последний раз редактировалось megaloman, 17-12-2011 в 21:49.

Это сообщение посчитали полезным следующие участники:

Отправлено: 15:50, 17-12-2011 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Новый участник


Сообщения: 4
Благодарности: 1

Профиль | Отправить PM | Цитировать


Изображения
Тип файла: jpg Снимок.JPG
(25.2 Kb, 11 просмотров)

Спасибо огромное за ответ.Только у меня много в папке папок, и бат архивирует первую папку нормально,а последующие идут так zip.zip.zip, т.е. сколько папок столько и зипов. А мне надо по одному зипу.Спасибо.

Последний раз редактировалось vvs360, 17-12-2011 в 20:14.

Это сообщение посчитали полезным следующие участники:

Отправлено: 19:58, 17-12-2011 | #3


Новый участник


Сообщения: 4
Благодарности: 1

Профиль | Отправить PM | Цитировать


Разобрался,спасибо.Убрал переменную ( /s ) и все получилось.Еще раз спасибо.+++++++++

Отправлено: 20:42, 17-12-2011 | #4


Ветеран


Contributor


Сообщения: 2728
Благодарности: 1697

Профиль | Отправить PM | Цитировать


Я исправил ответ: батник правильно отработает со всеми папками, в том числе и вложенными. Кроме того, я посчитал, что перед удалением исходного надёжнее проверить наличие Zip-файла. Ваш рецепт убрать ключ /s не универсален.
Но, кроме того, в Вашей постановке кроется один "ухаб" - зачем упаковывать уже упакованный файл при повторном запуске батника. Вот вариант решения:
Код: Выделить весь код
@Echo Off
FOR /F "usebackq delims=" %%j IN (`Dir /s /b /A:D`) DO Call :SubDir "%%j"
GoTo :Eof

:SubDir
FOR /F "usebackq delims=" %%i IN (`Dir %1 /b /A:-D`) DO (
     If /I Not %%~xi==.zip (
        7z a -tzip "%~1\%%i.zip" "%~1\%%i"
        If Exist "%~1\%%i.zip" del "%~1\%%i"
     )
)
То есть при повторном запуске упакуем только неупакованные файлы в папках, если они появятся

-------
Даже самая сложная проблема обязательно имеет простое, лёгкое для понимания, неправильное решение. Каждое решение плодит новые проблемы.

Это сообщение посчитали полезным следующие участники:

Отправлено: 22:11, 17-12-2011 | #5


Новый участник


Сообщения: 4
Благодарности: 1

Профиль | Отправить PM | Цитировать


Спасибо за ответ ,все работает.

Отправлено: 22:53, 21-12-2011 | #6



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » Любой язык - [решено] архивирование с помощью батника

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - [решено] Перезапуск служб с помощью батника goodguy Скриптовые языки администрирования Windows 16 13-01-2012 07:44
CMD/BAT - [решено] запуск *.exe с параметром "y" с помощью батника sharky lions Скриптовые языки администрирования Windows 22 18-04-2011 20:34
CMD/BAT - [решено] найти путь к файлу/папке с помощью батника и занести результат в txt файл sharky lions Скриптовые языки администрирования Windows 4 17-04-2011 19:57
CMD/BAT - [решено] Как с помощью батника узнать, используется ли в названии файла\папки кириллица? Nun-Nun Скриптовые языки администрирования Windows 4 28-10-2010 11:44
Архивирование Maniacosaur Программирование и базы данных 6 27-08-2002 21:34




 
Переход