14

7zip の @listfile 機能を使用して、同じ名前で別のフォルダーにあるファイルを含む 7zip ファイルを作成したいと考えています。私は長い間 7zip CLI を使用してきましたが、これを達成するための構文が見つかりません。

ファイル ツリーは次のようになります (somefile1.html と somefile2.html がそれぞれ 2 回発生することに注意してください)。

|   somefile2.html
+---dir1
|       somefile1.html
|       somefile2.html
|       
+---dir2
|       somefile3.html
|       somefile4.html
|       
\---dir3
        somefile1.html
        somefile5.html

@listfile の使用は正常に機能しますが、それを行っている間、結果の 7zip にディレクトリ ツリーを保持する方法がわかりません。

私は次の構文を試しました:

7z a -ir@files.txt my_compressed_file.7z

次に、7zip の Windows CHM ヘルプ ファイルの構文の説明に従って、ルート フォルダー (「ファイル」と呼ばれる) も含めてみました。

7z a -ir@files.txt my_compressed_file.7z .\files

どちらの場合も同じエラーが発生します。

Error
Duplicate filename:
somefile1.html
somefile2.html

誰かがこれを理解し、それに光を当てたいと思いますか?

それ以外の場合は、同じ名前のファイルを別のフォルダーに圧縮する方法を知っています (フォルダー構造が 7zip に保持されている場合は問題ありません)。しかし、今回は必要ないくつかのファイルがあちこちに散らばっています...

4

5 に答える 5

7

リスト ファイルを使用しているときに、同じエラー (ファイル名の重複) が発生しました。私のリストファイルは次のようになりました:

D:\SomeDir\SomeFile.txt
D:\SomeOtherDir\SomeFile.txt

D:\ から 7-zip を起動し、絶対パスではなく相対パスを使用するようにリスト ファイルを編集することで、問題を解決しました。

SomeDir\SomeFile.txt
SomeOtherDir\SomeFile.txt

結果として得られるアーカイブは、元のディレクトリ構造を保持しており、期待どおりに見えました。

注: 私は 7-Zip 4.65 を使用していましたが、ファイルが別のドライブにある場合やルートが異なる場合、このソリューションは機能しません。

私が実行した PowerShell コマンド ラインは次のとおりです。

& 'C:\Program Files\7-Zip\7z.exe' a -scsWIN logs.7z `@recentlogs.txt
于 2013-05-06T00:59:41.330 に答える
3

私の実際のディレクトリ構造は次のとおりです。

+---Release
|   |   Lib.dll
|   \--- x64
|           Lib.dll
|       
+---Definition_files
|       data_files
|       
+---x64
|       Lib.dll // Copy of the previous file (only to preserve "x64" directory")
\---Documentation
        documentation_files....

リストファイルを使用しました:

 .\Release\Lib.dll // used ".\" to remove "Release" directory
 Definition_files\data_files
 Documentation\documentation_files
 x64\Lib.dll

コマンドライン:

7z.exe a -mx=9 -mpass=5 -r .\Packgakes\release.zip .@Lib.lst

これにより、重複エラーが発生しました。「-r」がないとエラーになりません。

コマンド ラインで再帰スキャンとファイルのリストを確認してみてください(ファイル パスで「.」を使用すると、出力でパスが削除されます)

于 2013-12-09T14:22:13.833 に答える
2

7z にはバグがあるため、圧縮に 7z を使用することに固執する場合は、まず tar を使用して .tar アーカイブを作成し、次に .tar.7z アーカイブを作成してみてください。

于 2014-09-20T23:31:46.200 に答える
1

7-zip 9.38 ベータ以降、パス モードを選択できます: 相対、完全、絶対。

于 2015-02-04T16:50:36.550 に答える