コマンドラインから7-Zipを使用してアーカイブから特定のファイルを抽出します


34

たとえば、some.zip1つ以上のファイルを含むアーカイブがある場合、Windowsのコマンドラインから7-Zipで 1つのファイル(ファイルの名前がわかっている)のみを抽出するにはどうすればよいですか?

回答:


32

surfasbの答えのフォローアップとして、末尾に-rフラグを追加して再帰します:

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:7z.exeの代わりに7za.exeを使用します。これは、スクリプトで実際に使用するコマンドです。

7za.exe x archive.zip -o outputdir *.xml *.pdb *.exe *.ocx *.dll -r

1
どのように私は複数のファイルフィルタを追加することができ、言う.XML.zip?このスレッドをハイジャックしている場合は申し訳ありませんが、重複した質問を追加したくありませんでした。
Fr0zenFyr 14年

1
フィルタをスペースで区切ることで問題ないはずです。上記の編集された回答を参照してください。:)
ジオニクス14

また、アーカイブ内のアーカイブから特定のファイルを抽出するにはどうすればよいですか?私が探しているファイルは、「MainArchive.zip」内の「SubArchive.zip」内の「MyFile.txt」です。これは可能ですか?
PeterCo

1
@PeterCo、私はコマンドがあなたの場合SubArchive.zipから抽出することしかできないと思いMainArchive.zipます。あなたは、抽出液にコマンドフォローアップを実行することができるMyFile.txtからSubArchive.zip、最初の抽出後。
シオニクス

13

最後にファイル名を追加するだけです。

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


1
どのように私は複数のファイルフィルタを追加することができ、言う.XML.zip?このスレッドをハイジャックしている場合は申し訳ありませんが、重複した質問を追加したくありませんでした。
Fr0zenFyr 14年

@ Fr0zenFyrという別の質問です。重複していないことを明確にするために、この質問を自分で参照し、自分の質問の違いを指定できます。
music2myear

@ music2myear:説明をありがとう。zionyxによるトップ投票の回答にはすでに解決策が含まれています。私のコメントは2歳以上ですので、上記の解決策を使用したか、すでに質問を投稿して回答を見つけたと仮定するのは合理的な推測です(ところで、これは私の場合でした)。私の解決済みの投稿はSOにあり、コメントの前に元のスレッドが作成されているため、この質問にリンクできませんでした。:)
Fr0zenFyr

注:ここに記述されているように、-oとoutputdirの間にスペースを入れないでください。
キングの道化師

4

7z のmanページを見ると、次のコマンドを使用して7zアーカイブからファイルを抽出できることがわかります(ただし、manページにはpathの使用法がありません)。

7z x <archive> <path to file>

例:

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

または、を使用することもできますe

コマンドライン版のユーザガイドには、実際の使用状況に関するより多くの情報を持っているようです。


2
それはアーカイブ内の相対パスですか?
music2myear

はい、「folderwithin」はアーカイブのルートにあるフォルダーです。
キングの道化師

1

7z以下の構文があることに注意してください("-oMy Folder"出力フォルダー名を設定するオプションを囲むスペースと引用符を観察し、最初にこれを行ったように、間違った方法:* -o "My Folder"*):

7z e "my zip.zip" "-oMy Folder" *.jpg "all of these.*" -r
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.