質問: 7 zip - コマンドライン:ワイルドカードパターンでフォルダを抹消しますか? コマンドラインの7zipコマンドからワイルドカードパスを除外する方法はありますか。私はこれを何かやっています:7z.exe a -t7z archive.7z foldertoarchive\ -mx0また、 "foldertoarchive"の下にある\bin\*.*または\obj\*.*フォルダを除外します。ファイルを除外するには、-xパラメータを使用できます。ヘルプファイルは-xを使用するためのこの例を与えます:7z a -tzip archive.zip *.txt -x!temp.*ファイルを除外するのに最適です。しかし、ここでも、ワイルドカードで指定されたフォルダを除外したいと思います。私の "foldertoarchive"の下には複数のフォルダがあり、それらのフォルダの下にはbin\とobj\フォルダがあるかもしれません。これらをアーカイブに含めないでください。私はパターンを試してみました:-x!bin\* -x!bin\*.* -x!\bin\* -x!\bin\*.* -x!\\bin\\* -x!\\bin\\*.*誰も除外しないようです。これは単に7zipの制限ですか?
回答: バグを避けるために、-rまたは-xrを慎重に使用してください。次のようなディレクトリがあるとします。.\path1\path2\bin .\path1\path2\src .\path3\path4\path5\bin .\path3\path4\path5\src そしてコマンドを実行します。7z a -t7z archive.7z .\path1\path2 .\path3\path4\path5 -xr!bin archive.7zで得たもの.\path2\src .\path5\src つまり、.\path2\と.\path5\がarchive.7zのトップフォルダになり、両方のbinディレクトリが除外されました。-xアーカイブの最上位フォルダへのパス/ファイル名相対のみをサポートします。そのため、.\path1\path2\binだけを除外し、他のすべての「bin」ディレクトリを含める場合は、コマンドは次のようになります。7z a -t7z archive.7z .\path1\path2 .\path3\path4\path5 -x!path2\bin -xで絶対パスを使おうとしましたが、成功しませんでした。更新:linux用の7zには、絶対パスで動作するオプション-spfがあります。 marco によると、-spfは7-zip 15.14以降のwindowsでも利用可能です。