2011-09-26 16:51:38 +0000 2011-09-26 16:51:38 +0000
86
86

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

以下のようなフォルダ構造になっています。

  • root
  • folder1
  • folder2
  • folder3
  • 7za.exe

7-zipコマンドラインツールを実行して、folder1にあるすべてのファイルをfolder1.zipという名前のzipファイルに圧縮したいと思います。

以下の

7za.exe a -tzip folder1.zip folder1\*.*

を実行すると、期待通りのzipファイルが生成されます。しかし、zipファイルを開くと、その中にfolder1という名前のフォルダがあり、その中にはそのフォルダの中にあったすべてのファイルが入っています。私は、ZIPフォルダにフォルダ名を追加したくない、つまり、すべてのファイルを「フラット」ファイル形式で追加したいのです。

また、個々のファイル/フォルダごとにコマンドラインツールを再帰的に実行したくありません。

この機能を提供するスイッチはありますか?

回答 (4)

141
141
141
2011-09-26 17:25:54 +0000

7-Zipヘルプ](https://sevenzip.osdn.jp/chm/cmdline/index.htm)ファイルより。

a (Add) コマンド

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

`7z a archive1.zip subdir7-Zipヘルプ]0x3&ファイルより。

[ a (Add) コマンド ]0x3&

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

アーカイブ1.zipにフォルダのサブディレクトリから全てのファイルとサブフォルダを追加します。アーカイブ内のファイル名には、subdir のプレフィックスが含まれます。

7z a archive2.zip .\subdir\*

アーカイブ2.zipにフォルダのサブディレクトリから全てのファイルとサブフォルダを追加します。アーカイブ内のファイル名には、subdir接頭辞は含まれません。

`cd /D c:\dir17-Zipヘルプ]0x3&ファイルより。

[ a (Add) コマンド ]0x3&

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

`7z a archive1.zip subdir7-Zipヘルプ]0x3&ファイルより。

[ a (Add) コマンド ]0x3&

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

アーカイブ1.zipにフォルダのサブディレクトリから全てのファイルとサブフォルダを追加します。アーカイブ内のファイル名には、subdir のプレフィックスが含まれます。

7z a archive2.zip .\subdir\*

アーカイブ2.zipにフォルダのサブディレクトリから全てのファイルとサブフォルダを追加します。アーカイブ内のファイル名には、subdir接頭辞は含まれません。

`7z a c:\archive3.zip dir2\dir37-Zipヘルプ]0x3&ファイルより。

[ a (Add) コマンド ]0x3&

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

`7z a archive1.zip subdir7-Zipヘルプ]0x3&ファイルより。

[ a (Add) コマンド ]0x3&

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

アーカイブ1.zipにフォルダのサブディレクトリから全てのファイルとサブフォルダを追加します。アーカイブ内のファイル名には、subdir のプレフィックスが含まれます。

7z a archive2.zip .\subdir\*

アーカイブ2.zipにフォルダのサブディレクトリから全てのファイルとサブフォルダを追加します。アーカイブ内のファイル名には、subdir接頭辞は含まれません。

`cd /D c:\dir17-Zipヘルプ]0x3&ファイルより。

[ a (Add) コマンド ]0x3&

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

`7z a archive1.zip subdir7-Zipヘルプ]0x3&ファイルより。

[ a (Add) コマンド ]0x3&

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

アーカイブ1.zipにフォルダのサブディレクトリから全てのファイルとサブフォルダを追加します。アーカイブ内のファイル名には、subdir のプレフィックスが含まれます。

7z a archive2.zip .\subdir\*

アーカイブ2.zipにフォルダのサブディレクトリから全てのファイルとサブフォルダを追加します。アーカイブ内のファイル名には、subdir接頭辞は含まれません。

The filenames in archive c:\archive3.zip will include dir2\dir3 prefix, but they will not contain c:\dir1 prefix.

だから、こんなコマンドが欲しいんでしょうね。7za.exe a folder1.zip .\folder1\*

また、7-Zipのワイルドカードの扱いにも注意してください。これは *.* を「すべてのファイル」としては扱わず、「ファイル名にピリオドを含むすべてのファイル」を意味します。拡張子のないファイルは除外されます。もし本当にすべてのファイルが欲しいのであれば、代わりに * を使ってください。

最後に、アーカイブファイル名が -tzip で終わる場合、.zip パラメータは必要ありません。7-Zip は、このような場合に必要なフォーマットを計算してくれます。これが必要なのは、カスタムの拡張機能が必要な場合のみです(例:Mozilla アドオンの場合は 7za.exe a -tzip foo.xpi <files>)。

2
2
2
2016-06-07 18:04:40 +0000

これは私のために働いた

Consider folder structure like C:\ParentSubFolders….. そして、親フォルダのないC:\Parentの全てのファイルとフォルダを含むparent.zipを作成したいと思います。

1
1
1
2018-07-17 10:49:04 +0000
curr_dir=$(pwd); \ 
cd source_code/lambda/ ; \
7z a ../../lambda.zip .; \
cd $curr_dir \
unset curr_dir

===========

スクリプトの説明。

  • 後で使用するために現在のディレクトリのパスを保存する;
  • アーカイブする必要があるディレクトリに移動する;
  • アーカイブを作成する(最後に ‘.’ (ドット) があることに注意) ;
  • 元のディレクトリに戻る;
  • 元のディレクトリのパスを保存していた変数を取り除く

誰かの役に立てることを願っています。

-1
-1
-1
2017-03-17 05:23:32 +0000

例えば、Folder/subFolder1, Folder/subfolder2

select all subfolder ≪右クリックしてアーカイブを作成≫> select whatever format

& ≪*アーカイブ名は親フォルダになります。

簡単でしょ?