Powershell 7zip (7za) Исключить типы файлов - PullRequest
1 голос
/ 23 февраля 2012

Как я могу использовать powershell и 7zip (7za.exe), чтобы заархивировать папку, исключая определенные типы файлов?

Я пробовал это:

cd "C:\path\to\folder to zip"
7za.exe a "C:\path\to\newZip.zip" -mx3 -x!*.txt -x!*.pdf

Но это возвращает:

.txt:  WARNING: The system cannot find the file specified.

.pdf:  WARNING: The system cannot find the file specified.

и ничего не ZIP - просто создает пустой файл ZIP.

Я также пробовал это:

cd "C:\path\to\folder to zip"
Get-ChildItem "C:\path\to\folder to zip" -Recurse -Exclude *.txt, *.pdf | 7za.exe a -mx3 "C:\path\to\newZip.zip" $_.FullName

Но это все ZIP в "C": \ path \ to \ folder to zip ", а не исключать что-либо ..

Спасибо за любую помощь, которую вы можете предоставить.

-Jim

1 Ответ

0 голосов
/ 23 февраля 2012

Ваша вторая попытка почти верна.

Ваша команда для вызова 7-zip должна быть заключена в блок для каждого блока, в противном случае $_.FullName преобразуется в пустую строку и 7-zip (при отсутствии входных параметров) автоматически архивирует все в каталоге.Поэтому измените его на следующее:

Get-ChildItem "C:\path\to\folder to zip" -Recurse -Exclude *.txt, *.pdf | %{7za.exe a -mx3 "C:\path\to\newZip.zip" $_.FullName}

Обратите внимание, что % является псевдонимом для foreach-объекта.

...