7zip - командная строка: исключить папку (и) по шаблону?

<p>любая идея, как исключить подстановочный путь (ы) из командной строки 7zip команды?</p><p>я делаю что-то такое:</p><p><code>7z.exe a -t7z archive.7z foldertoarchive\ -mx0</code></p><p>и хотел бы исключить любые папки <code>\bin\*.*</code> или <code>\obj\*.*</code>, найденные под «foldertoarchive». для исключения файлов вы можете использовать параметр <code>-x</code>. в файле справки приведен пример использования <code>-x</code>:</p><p><code>7z a -tzip archive.zip *.txt -x!temp.*</code></p><p>это отлично подходит для исключения файла. но, опять же, я хотел бы исключить папку, указанную подстановочным знаком. в моем «foldertoarchive» есть несколько папок, в этих папках могут быть или не быть папки <code>bin\</code> и <code>obj\</code>. я хотел бы не включать их в архив.</p><p>я пробовал такие шаблоны, как:</p><p><code>-x!bin\*</code> <code>-x!bin\*.*</code> <code>-x!\bin\*</code> <code>-x!\bin\*.*</code> <code>-x!\\bin\\*</code> <code>-x!\\bin\\*.*</code></p><p>кажется, никто не исключает. это просто ограничение 7zip?</p>

<p>для рекурсивного исключения папок<em> bin </em>и<em> obj </em>вы можете использовать команду:</p><pre><code>7z.exe a -t7z archive.7z foldertoarchive\ -mx0 -xr!bin -xr!obj </code></pre>

<p>чтобы избежать ошибок, используйте -r или -xr осторожно.</p><p>предположим, у вас есть такие каталоги:</p><pre><code>.\path1\path2\bin .\path1\path2\src .\path3\path4\path5\bin .\path3\path4\path5\src </code></pre><p>и запустите команду:</p><pre><code>7z a -t7z archive.7z .\path1\path2 .\path3\path4\path5 -xr!bin </code></pre><p>что вы получили в архиве 7z:</p><pre><code>.\path2\src .\path5\src </code></pre><p>то есть <code>.\path2\</code> и <code>.\path5\</code> стали папкой<strong> top </strong>в archive.7z, и обе директории <code>bin</code> были исключены.</p><p>-x поддерживает только путь/имя файла<strong> относительный </strong>к верхней папке в архиве.</p><p>итак, если вы хотите исключить только <code>.\path1\path2\bin</code>, но включить все остальные каталоги bin, команда должна выглядеть следующим образом:</p><pre><code>7z a -t7z archive.7z .\path1\path2 .\path3\path4\path5 -x!path2\bin </code></pre><p>я пытался использовать абсолютный путь в -x, но никогда не получалось.</p><hr><p><strong> обновить: </strong></p><p>в linux для linux есть опция <code>-spf</code>, которая работает с абсолютным путем.</p><p>согласно <a href="https://superuser.com/a/1063209/304204">марко</a> , <code>-spf</code> также доступен в windows с 7-zip 15.14</p>