コマンドライン – アーカイブにディレクトリ名を追加せずにディレクトリからアーカイブを作成する

7-zip command-line compression

私は以下のようなフォルダ構成にしています

  • 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ヘルプファイルから

a (Add) コマンド

アーカイブにファイルを追加します

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


タイトルとURLをコピーしました