Если у меня есть архив, например, some.zip
который содержит один или несколько файлов, как я могу извлечь только один файл (я знаю имя файла) с 7-Zip из командной строки в Windows?
4 ответа
В качестве продолжения ответа на surfasb добавьте флаг -r в конце для recurse:
7z e [archive.zip] -o[outputdir] [fileFilter] -r
Поддержка нескольких фильтров:
7z e [archive.zip] -o[outputdir] [fileFilter_1] [fileFilter_2] -r
Пример:
Командная строка нескольких фильтров:
7z e archive.zip -o outputdir *.xml *.dll -r
PS: я использую 7za.exe вместо 7z.exe. Это фактическая команда, которую я использую в моем сценарии:
7za.exe x archive.zip -o outputdir *.xml *.pdb *.exe *.ocx *.dll -r
Вы просто добавляете имя файла в конце.
7z e [archive.zip]
-o [outputdir] [fileFilter]
Если вы посмотрите на справочную страницу для 7z, то обнаружите, что следующую команду можно использовать для извлечения файла из архива 7z (хотя на странице справки отсутствует использование пути):
7z x <archive> <path to file>
Примеры:
7z x backup.7z *.html
7z x backup.7z folderwithin/myfile.html
В качестве альтернативы вы можете использовать e
.
Руководство пользователя версии командной строки, кажется, содержит больше информации о фактическом использовании.
Обратите внимание, что 7z
имеет следующий синтаксис (обратите внимание на пробелы и кавычки, окружающие "-oMy Folder"
для установки имени выходной папки, мне потребовались часы, чтобы понять, как я это делал изначально - неправильный путь: * -o "My Folder"
*):
7z e "my zip.zip" "-oMy Folder" *.jpg "all of these.*" -r