如何在排除某些文件类型的同时使用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文件。
我也试过这个:
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
答案 0 :(得分:0)
你的第二次尝试几乎是正确的。
调用7-zip的命令需要包含在for-each块中,否则$_.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-object的别名。