24

Если у меня есть архив, например, some.zip который содержит один или несколько файлов, как я могу извлечь только один файл (я знаю имя файла) с 7-Zip из командной строки в Windows?

4 ответа4

25

В качестве продолжения ответа на 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
11

Вы просто добавляете имя файла в конце.

7z e [archive.zip] -o [outputdir] [fileFilter]

3

Если вы посмотрите на справочную страницу для 7z, то обнаружите, что следующую команду можно использовать для извлечения файла из архива 7z (хотя на странице справки отсутствует использование пути):

7z x <archive> <path to file>

Примеры:

7z x backup.7z *.html
7z x backup.7z folderwithin/myfile.html

В качестве альтернативы вы можете использовать e .

Руководство пользователя версии командной строки, кажется, содержит больше информации о фактическом использовании.

0

Обратите внимание, что 7z имеет следующий синтаксис (обратите внимание на пробелы и кавычки, окружающие "-oMy Folder" для установки имени выходной папки, мне потребовались часы, чтобы понять, как я это делал изначально - неправильный путь: * -o "My Folder" *):

7z e "my zip.zip" "-oMy Folder" *.jpg "all of these.*" -r

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .