Дополнительно
Как можно застегнуть или расстегнуть молнию из скрипта, используя ТОЛЬКО встроенные возможности Windows'?
В Windows вы можете застегнуть некоторые файлы с помощью
щелкните правой кнопкой мыши → Отправить в → Сжатую (застегнутую) папку.
И распаковать, дважды щелкнув по файлу .zip
и извлечь файлы.
Есть ли способ применить эти возможности из сценария (файл .bat) без необходимости установки стороннего программного обеспечения?
281
16
Для расширения Стивен копейки'ы решение PowerShell, вы можете включить его в пакетный файл позвонив по телефону powershell.exe как это:
Как Иван Шило сказал, Это выиграл'т работать с PowerShell 2, это требуют PowerShell 3 или более .Чистая рамки 4.
По состоянию на .Нетто 4.5, PowerShell может сделать это:
в
За последние две строчки,
Bar
ифу
можно заменить имя папки, чтобы иметь, или как там зовут в уже существующую папку. `foo.zip в обоих случаях действует как zip-файл, либо сохранить как или распаковать из.Если у вас установлена Java, вы можете сжать в zip-архив, используя команду
jar
:В 2013 году это было невозможно. Microsoft не предоставляла для этого никакого исполняемого файла.
См. эту ссылку, чтобы узнать, как это сделать с помощью VBS. https://superuser.com/questions/201371/create-zip-folder-from-the-command-line-windows
Начиная с Windows 8, .NET Framework 4.5 устанавливается по умолчанию, с System.IO.Compression.ZipArchive и PowerShell можно написать скрипты для достижения этой цели, см. https://stackoverflow.com/a/26843122/71312
В PowerShell 5.0
От
Майкрософт.В PowerShell.Архив
Вы можете использовать:Сжатие-Архив
Расширить-Архив
Е. Г.:
Компресс-Архиве -Путь C:\Test -Назначение Путь C:\result
Расширить-архиве -путь result.zip -назначение путь C:\Test
Это'т точно молния, но единственный способ сжать файл, используя средства Windows:
Для распаковки:
Расширенный пример (из ss64.com):
Дополнительная информация: [makecab][1], [развернуть][2], [makecab дополнительно использует][3]
[1]: http://ss64.com/nt/makecab.html на "makecab и" [2]: http://ss64.com/nt/expand.html на "расширить"и [3]: http://ss64.com/nt/makecab-directives.html на "makecab дополнительно использует и"
С Помощью 7-Zip:
Молния: у вас есть папка
foo
, и хотят сжать его вmyzip.zip
Распакуйте: вы хотите распаковать его (
myzip.zip
) в текущем каталоге (./
)Я искал ответ именно на этот вопрос, и, судя по моим исследованиям, ответ DiryBoy' кажется точным.
Я обнаружил, что программа compact.exe сжимает файлы, но не для создания сильно сжатого файла (или набора файлов). Это похоже на опцию, которую вы получаете при щелчке правой кнопкой мыши на букве диска или разделе в Windows. Вы получаете возможность выполнить очистку (удалить временные файлы и т.д.), а также сжать файлы. Сжатые файлы по-прежнему доступны, но они просто сжаты, чтобы освободить место на диске, на котором мало места.
Я также нашел программу compress.exe, которая случайно оказалась у меня на компьютере. Он не является встроенным в большинство машин windows и входит в комплект ресурсов 2003. Он создает своего рода застегнутый файл, но он действительно больше похож на файлы с установочного диска windows (имеет подчеркивание в качестве последнего символа расширения или имени файла). А команда extract.exe извлекает эти файлы.
Однако, если это можно сделать с помощью графического интерфейса, то, скорее всего, есть способ сделать это с помощью пакетного, .vbs или другого типа сценария в командной строке. Поскольку в windows есть опция 'send to' для создания zip-файла, я знал, что должен быть способ сделать это через командную строку, и я нашел несколько вариантов.
Вот отличная ссылка, которая показывает, как застегнуть файл с помощью родных команд windows.
https://superuser.com/questions/110991/can-you-zip-a-file-from-the-command-prompt-using-only-windows-built-in-capabili
Я протестировал его с каталогом, содержащим несколько вложенных файлов и папок, и он отлично сработал. Просто следуйте формату командной строки.
Существует также способ разархивирования файлов через командную строку, который я тоже нашел. Один из способов - просто открыть окно проводника, показывающее содержимое заархивированного файла. Некоторые из них также используют Java, которая не обязательно является родной для windows, но настолько распространена, что почти кажется таковой.
https://superuser.com/questions/149489/does-windows-7-have-unzip-at-the-command-line-installed-by-default
https://stackoverflow.com/questions/1021557/how-to-unzip-a-file-using-the-command-line
Вы можете использовать скрипт на языке VBScript, завернутые в файл bat. Этот код работает на относительный путь.
Там isn'т необходимости каких-либо сторонних инструментов или зависимостей. Просто установите
ИСХОДНЫЙ_КАТАЛОГ
иOUTPUTZIP
.Имя Файла: ZipUp.летучая мышь
Пример использования
Кроме того, вы можете параметризовать этот файл, заменив строки cscript в _zipup.ВБС %ИСХОДНЫЙ_КАТАЛОГ% %OUTPUTZIP%
с
cscript в _zipup.ВБС %1 %2, в этом случае он может быть даже более легко вызван из, просто позвонив по телефону
звоните C:\Source\Dir ZipUp C:\Archive.zip`.Это обновленная версия в ответ предусмотренных @PodTech.Ио
Эта версия имеет весь код ВБС правильно сбежал в пакетный файл. Это's также созданные в подпрограмму, которую можно назвать одной строкой из любого места в пакетный скрипт:
Если вам нужно сделать это как часть сценария, то лучший способ это использовать Java. Предполагая, что каталог bin в PATH (в большинстве случаев), вы можете использовать командную строку:
Если Java не на вашем пути, ссылаться на него напрямую:
Открытый исходный код-это ваш друг :-)
Вот распакуйте: http://gnuwin32.sourceforge.net/packages/unzip.htm
Есть команды Молния, а также: http://gnuwin32.sourceforge.net/packages/zip.htm
В бинары скачать вполне достаточно.
У меня есть проблема со всеми этими решениями. Они'ре не совсем то же, и все они создают файлы, которые имеют небольшой размер разницы по сравнению с
ПКМ --> отправляйте к --> сжатый (сжатом) папка
когда сделаны из той же исходной папки. Ближайший размер-разница у меня была разница в 300 КБ (сценарий > инструкция), в составе:(Обратите внимание на -CompressionLevel. Существует три возможных значения: Быстрый, NoCompression & оптимальный (по умолчанию: оптимальная))
Я хотел сделать .bat файл, который должен автоматически сжимать папки WordPress плагин, я'м работает на, в .zip-архив, поэтому я могу загрузить его на сайт WordPress и проверить плагин.
Но почему-то не'т работать с любым из этих автоматическое сжатие, но он работает с ручной юаней сжатия, ведьма я нахожу действительно странным.
И создается сценарий .zip-файлы на самом деле сломать плагинов WordPress до точки, где они могут'т быть активирован, и они также не могут быть удалены изнутри WordPress. Я по SSH в "обратной стороны" из сервера и удалить загруженные файлы плагинов сами, вручную. В то время как вручную РМБ-сгенерированные файлы нормально работают.
Вы говорите, что вы'вновь пытается сделать это без стороннего программного обеспечения. Я'м не уверен, если вы'д рассматривать .Чистый и"сторонних" по-программное обеспечение.
Но вы можете создавать свои собственные утилиты командной строки .Чистая. Он должен'т занять больше, чем несколько строк кода.
Класс Zip-Файл
Вы можете распаковать заархивированный или собственный сжатый файл Windows с помощью команды Expand, например.
В zip файл: