Главная
>
Windows > Автоматическая архивация каждого файла в папке
Автоматическая архивация каждого файла в папке
Как автоматизировать процесс архивация каждого файла в папке?

У меня возникла необходимость архивировать бекапы mssql, но не всей папки целиком, а каждого файла в этой папке по отдельности.
На помощь пришла командная строка windows, 7-zip архиватор и все вместе = bat файл.
Вот небольшой код:
|
echo off rem Текущий каталог где читаем файлы и куда архивируем set ArchiveDir=%cd% rem Указываем каталог куда буду падать временные бекапы (если запускаем не из текущего каталога, верхнюю строку заархивировать) rem set ArchiveDir=Z:\backup_1c\10-2011\buhZorS rem папка где лежит 7zip set SevenZip=C:\"Program Files"\7-Zip\7z.exe a rem Читаем файлы for %%g in (*.bak) do call %SevenZip% "%ArchiveDir%\%%g.7z" %%g rem Выводим сообщение, что все готово и пора жать кнопку set /P delay=Finish, please press Enter |
Все банально просто, скрипт должен лежать в папке где находятся файлы, либо в скрипте надо прописать путь, что архивировать и куда складывать.
Теперь разбор скрипта.
1 - вычисляем папку где находится скрипт
2 - если п.1 не нужен тогда ставим в ручную папку где хранятся файлы для архивирования
3 - указываем папку где находится наш архиватор
4 - в цикле пробегаемся по папке и скармливаем каждый файл (с расширением
BAK, обратите внимание его можно поменять) архиватору
Вуаля, нажали, подождали, получили архивы.
а удалить файлы как ?
Файлы можно удалять командой «DEL имя_файла или папки», синтаксис можно посмотреть через командную строку «del /?».
Здравствуйте!
А как запаковать папки в определенной директории?
Заранее спасибо за ответ.
@Максим
Переписать скрипт, но сейчас синтаксис не помню. Первое, вот тут set ArchiveDir=%cd% вместо %cd% указать полный путь к папке с папками. Далее вот тут for %%g in (*.bak) вместо *.bak указать что это папки, думаю что достаточно будет просто поставить * и попробовать.