Как можно сжать (/ zip) и распаковать (/ unzip) файлы и папки с командным файлом без использования каких-либо внешних инструментов?

Я знаю, что подобные вопросы задавали здесь много, но я не совсем удовлетворен ответами (и даже вопросами).

Основная цель - совместимость - она ​​должна быть применима к самому широкому кругу машин с Windows (включая XP, Vista, Win2003 - которые вместе по-прежнему занимают около 20% доли Windows), а созданные файлы должны использоваться на машинах Unix / Mac (поэтому стандартно форматы архивирования / сжатия предпочтительны).

Какие есть варианты:

Создание пакета, который реализует некоторый алгоритм почтового индекса. По-видимому, это возможно - но только с отдельными файлами и использованием CERTUTIL для двоичной обработки (на некоторых машинах по умолчанию отсутствует CERTUTIL, и его невозможно установить в WinXP Home Edition).С помощьюShell.Application через WSH. Лучший вариант на мой взгляд. Он позволяет архивировать целые каталоги и может использоваться на любой машине Windows.Makecab Несмотря на то, что его сжатие не так переносимо, оно доступно на любой машине с Windows. Некоторые внешние программы, такие как 7zip, способны извлекать контент .CAB, но это будет не очень удобно, когда файлы нужно использовать в Unix / Mac. И при сжатии Отдельный файл довольно прост, для сохранения структуры каталогов требуется немного больше усилий.Использование .NET Framework - не очень хороший вариант. Форма .NET 2.0 существуетGZipStream но это позволяет сжатие только отдельных файлов. .NET 4.5 имеет возможности Zip, но он не поддерживается в Vista и XP. И даже более того. .NET не устанавливается по умолчанию в XP и Win2003, но, поскольку весьма вероятно иметь .NET 2.0 до 4.0, это значительный выбор ,Powershell - поскольку он опирается на .NET, он имеет те же возможности. Он не установлен по умолчанию в XP, 2003 и Vista, поэтому я пропущу его.

Ответы на вопрос(3)

Ваш ответ на вопрос