たとえば、アーカイブがある場合、some.Zip
1つ以上のファイルを含む場合、Windowsのコマンドラインから 7-Zip を使用して1つのファイルのみ(ファイルの名前はわかっています)を抽出するにはどうすればよいですか?
surfasb's answer のフォローアップとして、末尾に-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
最後にファイル名を追加するだけです。
7z e [archive.Zip]
-o [outputdir] [fileFilter]
7zの man page を見ると、次のコマンドを使用して7zアーカイブからファイルを抽出できることがわかります(ただし、manページにはパスの使用法がありません)。
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