質問: 7zipで選択したファイル/ディレクトリごとに個別のzipファイルを作成するにはどうすればよいですか? これはtotal commanderの内部zipパッカーです。しかし、7zipパッカーを使いたいのですが。 5つのファイルを選択すると、選択したファイルごとに5つの個別の.zipアーカイブが取得されます。 7zipでそれを行うにはどうすればよいですか?
回答: 私はちょうどこの問題に取り組んでおり、見つかった問題の1つはアーカイブ内のフォルダー名の重複でした。つまり、「foo」というフォルダーを圧縮すると、1つだけではなく.\foo\fighters.txtを含むアーカイブが生成されますfighters.txtを含みます。したがって、答えは、処理中のディレクトリに移動して、アーカイブを前の(ルート)ディレクトリに表示し、次のフォルダを処理するためにそのディレクトリに戻ることです。また、7zipがルートディレクトリ内の既存のzipファイルとcmdファイルを無視してアーカイブ内で終了しないようにすることも重要です。したがって、-x!*.zipおよび-x!*.cmd除外引数になります。このスクリプトは、再帰的なフォルダー構造も維持します。@echo off rem ensures variables set within the batch file are local to rem this script only and will be removed when finished. setlocal if exist *.zip goto zip_exist for /d %%x in (*) do ( cls cd /d %%x "e:\program files\7-zip\7z.exe" a -r -x!*.zip -x!*.cmd "..\%%x.zip" "*.*" cd .. ) goto end :zip_exist echo. echo note: for this script to work, compression of echo pre-existing zip files is not possible. :end pause 上記のコードを「compress_dirs.cmd」などのバッチファイルにコピーし、圧縮するフォルダーを含むディレクトリから管理者として実行する必要があります。お役に立てれば。