powershell 7zip скрипт архивирования

Архивирование и распаковка ZIP архивов в PowerShell

В модуле Microsoft.PowerShell.Archive (C:\Windows\System32\WindowsPowerShell\v1.0\Modules\Microsoft.PowerShell.Archive) есть всего два командлета:

powershell 7zip скрипт архивирования

Рассмотрим примеры использования этих командлетов для создания и распаковки ZIP архивов в ваших PowerShell скриптах.

Как создать ZIP архив в PowerShell с помощью Compress-Archive?

Команда Compress-Archive имеет следующий синтаксис:

Compress-Archive [-Path] String[] [-DestinationPath] String [-CompressionLevel String ] [-Update]

Чтобы заархивировать один файл, выполните:

powershell 7zip скрипт архивирования
Можно заархивировать все содержимое нескольких каталогов (все файлы и подкаталоги):

Можно добавить в ZIP архив только файлы с определенной маской. Например, следующая команда запакует только файлы с расширением *.txt.

С помощью Get-ChildItem можно использовать более сложные фильтры. Например, следующий скрипт позволит найти на диске топ 10 самых больших файлов с расширением *.docx или *.xlsx и добавит их в архив:

Чтобы добавить в существующий zip архив новые файлы, используйте ключ Update:

powershell 7zip скрипт архивирования

Как распаковать ZIP архив в PowerShell с Expand-Archive?

Для разархивирования ZIP файлов можно использовать командлет ExpandArchive.
Синтаксис командлета аналогичный:

Expand-Archive [-Path] String [-DestinationPath] String [-Force] [-Confirm]

Например, чтобы распаковать созданный нами ранее ZIP-архив в указанный каталог с перезаписью файлов, выполните:

powershell 7zip скрипт архивирования

Из недостатков модуля архивирования PowerShell стоит отметить:

Архивирование в PowerShell с помощью класса ZipFile

Чтобы заархивировать каталог, используйте такой скрипт:

powershell 7zip скрипт архивирования

Чтобы обновить ZIP архив и указать степень сжатия, используйте такой код PowerShell:

Можно вывести содержимое ZIP архива:

powershell 7zip скрипт архивирования

Или можно вывести содержимое zip архива в виде таблицы Out-GridView с указанием степени сжатия:

powershell 7zip скрипт архивирования

Для разархивирования ZIP архива в каталог C:\Logs, используйте следующие команды:

Источник

Работа с 7zip из командной строки

Приведенные ниже команды выполняются после перехода в каталог с установленным 7-Zip. Как правило, это:

cd «C:\Program Files\7-Zip»

Распаковать и заархивировать

Распаковка

Синтаксис для распаковки:

* ключ x распаковывает с сохранением каталожной структуры; e — все в одно место.

* в данном примере мы распакуем файл c:\temp\archive.7z в папку c:\temp

Архивация

Синтаксис для архивирования:

* в данном примере мы создадим zip-архив с уровнем компрессии 5; в архив попадет все содержимое всех каталогов; название для файла c:\temp\archive.zip; запаковываем все содержимое папки c:\temp.

* в данном примере мы архивируем файлы c:\temp\file1.txt, c:\temp\file2.txt, c:\temp\file3.txt с низкой компрессией 1; в итоге будет получен архив c:\temp\archive.7z.

Резервное копирование с помощью 7-Zip

Один из самых распространенных примеров использования 7zip из командной строки — резервирование данных.

Для начала переходим в каталог с установленной программой:

cd «C:\Program Files\7-Zip\»

* так как в пути имеется пробел, его необходимо писать в кавычках.

Сама команда выглядит следующим образом:

Полный пример cmd-скрипта для резервного копирования:

set source=»C:\Date»
set destination=»C:\Temp»
set passwd=»Password»
set dd=%DATE:

6,4%
set curdate=%dd%-%mm%-%yyyy%

Пример Powershell скрипта для резервного копирования:

Описание ключей и команд 7z

В синтаксисе работы с 7zip идут команды и ключи.

Описание основных команд

КомандаОписание
aДобавление файлов в архив. Если архивного файла не существует, создает его.
dУдаление файла из архива
eИзвлечение файлов из архива. Все файлы оказываются в одной папке.
lВывод содержимого архива.
rnПереименовывание файла внутри архива.
uОбновление файлов в архиве. Если файла нет, создает новый.
xИзвлечение файлов из архива. Пути сохраняются.

Описание ключей

Другие полезные ключи:

Примеры

Исключение файлов и папок

Отдельно стоит рассказать про возможность исключения. Есть два варианта ее применения.

Первый — создать список исключений в отдельном файле.

* где exclus.txt — файл с исключениями.

Пример файла с исключениями:

* в данном примере мы исключаем каталог с именем test и все файлы с расширением tmp.

Второй — указать исключение в команде.

Резервирование баз 1С

Источник

Создание ZIP архива с помощью PowerShell

Обычно при необходимости автоматизировать создание архивных копий я использую утилиту 7zip. Она бесплатна, удобна в использовании и имеет интерфейс командной строки, что позволяет использовать ее в скриптах. Однако установка стороннего софта на сервер не всегда возможна, поэтому при необходимости можно создавать zip архивы, используя встроенный в Windows функционал.

Загрузив сборку, можно приступать к архивации. Для этого используем статический метод CreateFromDirectory класса ZipFile. Для создания архива из директории этому методу необходимо в качестве аргументов передать исходную директорию и имя конечного zip-файла. Например:

powershell 7zip скрипт архивирования

В методе CreateFromDirectory можно задать уровень сжатия:

• Optimal — оптимизация по уровню сжатия;
• Fastest — оптимизация по затрачиваемому времени;
• NoCompression — без сжатия.

А также можно указать, включать ли в архив базовый каталог или нет. Для примера еще раз создадим архив с уровнем сжатия Optimal и укажем не включать в него базовый каталог:

powershell 7zip скрипт архивирования

При создании архива надо помнить о том, что метод не умеет перезаписывать существующие файлы, и если в указанной директории уже есть zip-файл с таким именем — то он выдаст ошибку.

powershell 7zip скрипт архивирования

Операция, обратная архивации — разархивирование. Для этого используем метод ExtractToDirectory. Для работы ему нужно передать исходный zip-файл и директорию, в которую его надо распаковать. Для примера распакуем созданный ранее архив:

powershell 7zip скрипт архивирования

Источник

ИТ База знаний

Полезно

— Онлайн генератор устойчивых паролей

— Онлайн калькулятор подсетей

— Руководство администратора FreePBX на русском языке

— Руководство администратора Cisco UCM/CME на русском языке

— Руководство администратора по Linux/Unix

Навигация

Серверные решения

Телефония

FreePBX и Asterisk

Настройка программных телефонов

Корпоративные сети

Протоколы и стандарты

Как архивировать и распаковывать файлы с помощью PowerShell

Формат файла ZIP уменьшает размер файлов, сжимая их в один файл. Этот процесс экономит дисковое пространство, шифрует данные и позволяет легко обмениваться файлами с другими. Вот как можно сжать и разархивировать файлы с помощью PowerShell.

Онлайн курс по Linux

Мы собрали концентрат самых востребованных знаний, которые позволят тебе начать карьеру администратора Linux, расширить текущие знания и сделать уверенный шаг к DevOps

powershell 7zip скрипт архивирования

powershell 7zip скрипт архивирования

Как архивировать файлы с помощью PowerShell

Сначала откройте PowerShell, выполнив поиск в меню «Пуск», а затем введите следующую команду, заменив PathToFiles и PathToDestination на путь к файлам, которые вы хотите сжать, а также на имя и папку, в которую вы хотите перейти, соответственно:

Примечание. Кавычки вокруг пути необходимы только в том случае, если путь к файлу содержит пробел.

В качестве альтернативы, чтобы сжать все содержимое папки и все ее подпапки, вы можете использовать следующую команду, заменив PathToFolder и PathToDestination на путь к файлам, которые вы хотите сжать, а также на имя и папку, которую вы хотите. чтобы перейти соответственно:

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

Выше мы рассмотрели, как включить корневой каталог и все его файлы и подкаталоги при создании архивного файла. Однако, если вы хотите исключить корневую папку из Zip-файла, вы можете использовать подстановочный знак, чтобы исключить ее из архива. Добавляя звездочку (*) в конец пути к файлу, вы указываете PowerShell только захватить то, что находится внутри корневого каталога. Это должно выглядеть примерно так:

powershell 7zip скрипт архивирования

powershell 7zip скрипт архивирования

Примечание. Подкаталоги и файлы корневой папки не включаются в архив этим методом.

Наконец, если вам нужен архив, который сжимает файлы только в корневом каталоге и во всех его подкаталогах, вы должны использовать подстановочный знак «звезда-точка-звезда» (*. *) Для их сжатия. Это будет выглядеть примерно так:

powershell 7zip скрипт архивирования

Примечание. Подкаталоги и файлы корневой папки не включаются в архив этим методом.

powershell 7zip скрипт архивирования

Как распаковать файлы с помощью PowerShell

Помимо возможности архивировать файлы и папки, PowerShell имеет возможность разархивировать архивы. Процесс даже проще, чем их сжатие; все, что вам нужно, это исходный файл и место для данных, готовых к распаковке.

Откройте PowerShell и введите следующую команду, заменив PathToZipFile и PathToDestination на путь к файлам, которые вы хотите сжать, а также на имя и папку, в которую вы хотите перейти, соответственно:

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

powershell 7zip скрипт архивирования

Онлайн курс по Linux

Мы собрали концентрат самых востребованных знаний, которые позволят тебе начать карьеру администратора Linux, расширить текущие знания и сделать уверенный шаг к DevOps

Источник

Powershell 7zip скрипт архивирования

Powershell module for creating and extracting 7-Zip archives supporting Powershell’s WriteProgress API.

powershell 7zip скрипт архивирования

Please note that this repository is not maintained anymore. I’ve created it a couple of years ago to fit my own needs (just compressing a single folder). I love that lots of other users find my package helpful.

I really appreciated if you report issues or suggest new feature. However, I don’t use this package myself anymore, and I don’t have the time to maintain it appropriately. So please don’t expect me to fix any bugs. Any Pull Request is welcome though.

The syntax is simple as this:

It works with both x86 and x64 and uses SevenZipSharp as a wrapper around 7zip’s API.

Jason Fossen wrote the article PowerShell 7-Zip Module Versus Compress-Archive with Encryption where he describes some usage scenarios with 7Zip4PowerShell.

7Zip4Powershell is published at PowerShell Gallery.

Compress-7Zip accepts a script block for customization. The script block gets passed the current SevenZipCompressor instance. E.g. you can set the multithread mode this way:

A list of all custom parameters can be found here.

I’ve written and maintaining the module just for fun and to serve my own needs. If it’s useful for you too, that’s great. I don’t demand anything in return.

However, if you like this module and feel the urge to give something back, a coffee or a beer is always appreciated. Thank you very much in advance.

powershell 7zip скрипт архивирования

About

Powershell module for creating and extracting 7-Zip archives

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *