私は以下のようなフォルダ構成にしています
- root
- folder1
- folder2
- folder3
- 7za.exe
7-zipコマンドラインツールを実行して、folder1
にあるすべてのファイルをfolder1.zip
というzipファイルに圧縮したい
以下を実行します
7za.exe a -tzip folder1.zip folder1\\*.*
は期待通りに zip ファイルを生成します。しかし、zipファイルを開くと、folder1
という名前のフォルダがあり、その中にはそのフォルダの中にあったすべてのファイルが入っています。つまり、すべてのファイルを「フラット」ファイル形式で追加したいのです
また、個々のファイル/フォルダごとにコマンドラインツールを再帰的に実行したくありません
この機能を提供するスイッチはありますか?
100 gg. 2011-09-26
7-Zipヘルプファイルから
アーカイブにファイルを追加します
Examples
7z a archive1.zip subdir\
subdir フォルダの中の全てのファイルとサブフォルダを archive1.zip に追加します。アーカイブ内のファイル名には subdir が含まれています
7z a archive2.zip .\subdir\*
subdir フォルダの中の全てのファイルとサブフォルダを archive2.zip に追加します。アーカイブ内のファイル名には subdir は含まれません
cd /D c:\dir1\
7z a c:\archive3.zip dir2\dir3\
archive c:は、filenames in archive c:’\archive3.zipには、dir2″\dir3″が含まれていますが、c:\dir1″は含まれていません
つまり、あなたが望むコマンドは次のようになります。7za.exe a folder1.zip .\folder1\*
また、7-Zip のワイルドカードの扱いにも注意してください。これは *.*
を “すべてのファイル” としては扱いません — “ファイル名にピリオドを含むすべてのファイル” を意味します。拡張子のないファイルは除外されます。もし本当にすべてのファイルが必要ならば、代わりに *
を使ってください
最後に、アーカイブファイル名が -tzip
で終わる場合は -tzip
パラメータは必要ありません。7-Zip は、このような場合に必要なフォーマットを見つけ出すのに十分賢いです。これが必要なのは、カスタムの拡張機能(例えば、Mozilla アドオンのための 7za.exe a -tzip foo.xpi <files>
など)が必要な場合だけです
157 afrazier 2011-09-26
これは私のために働きました
C:\ParentSubFolders…..のようなフォルダ構造を考えてみましょう。そして、すべてのファイルとフォルダを含む親.zipを作成したいと思いますC:\Parent親フォルダなし[すなわち、それはSubFolders…..から開始されます]
cd /D "C:\Parent"
"7z.exe" a Parent.zip "*.*" -r
これは、C:\ParentにParent.zipを作成します
3 Pritesh Dhokchaule 2016-06-07
受け入れられた回答を拡大するだけで(そこにコメントを追加することができませんでした)
Linuxでは’*’を追加してもうまくいかなかったので、結局、より冗長なコマンドラインを作ることにしましたが、これで望み通りの結果が得られました
curr_dir=$(pwd); \
cd source_code/lambda/ ; \
7z a ../../lambda.zip .; \
cd $curr_dir \
unset curr_dir
===========
script explanation:
- 後で使用するために現在のディレクトリのパスを保存します
- アーカイブする必要があるディレクトリに移動します
- アーカイブを作成します (最後に ‘.’ (ドット) があることに注意してください);
- 元のdir;に戻ります
- 元のdirパスを格納していた変数を削除します
誰かのお役に立てれば幸いです
1 Humanier 2018-07-17
例:Folder/subFolder1、Folder/subfolder2
すべてのサブフォルダを選択し、右クリックしてアーカイブを作成します
*アーカイブ名は親フォルダになります
Simple right?
-2 user708375 2017-03-17