powershell 脚本 - 创建 zip 文件,不包括某些文件和文件夹
Posted
技术标签:
【中文标题】powershell 脚本 - 创建 zip 文件,不包括某些文件和文件夹【英文标题】:powershell script - create zip file excluding some files and folders 【发布时间】:2012-09-18 06:21:59 【问题描述】:我正在尝试创建 powershell 脚本函数来压缩文件夹,不包括一些文件夹和文件这里是我的代码,它创建包括所有文件和文件夹的 zip 文件
# Zip creator method
function create-zip([String] $aDirectory, [String] $aZipfile)
[string]$pathToZipExe = "C:\Program Files\7-zip\7z.exe";
[Array]$arguments = "a", "-tzip", "$aZipfile", "$aDirectory";
& $pathToZipExe $arguments;
但我想排除 *.tmp 文件以及 bin 和 obj 文件夹
我发现Get-ChildItem "C:\path\to\folder to zip" -Recurse -Exclude *.txt, *.pdf | %7za.exe a -mx3 "C:\path\to\newZip.zip" $_.FullName
作为 powershell 命令可以正常工作,但是如何在脚本文件的函数中使用它
请建议...
【问题讨论】:
您可以在以下位置找到可能的解决方案:***.com/a/59018865/2349693 【参考方案1】:如果该单行代码有效,那么将其放入函数中非常简单:
function Create-Zip([string]$directory, [string]$zipFile, [string[]]$exclude=@())
$pathToZipExe = "C:\Program Files\7-zip\7z.exe"
Get-ChildItem $directory -Recurse -Exclude $exclude |
Foreach & $pathToZipExe a -mx3 $zipFile $_.FullName
如果您需要排除目录,请将 Get-ChildItem 行更改为:
Get-ChildItem $directory -Recurse -Exclude $exclude | Where !$_.PSIsContainer |
【讨论】:
快速 - 你将这些函数实际放置在哪里,以便 powershell 可以访问它们 您可以将上面的函数放在您的 profile.ps1 脚本中(位于 $home\Documents\WIndowsPowerShell 下)。 PowerShell 将在加载时处理该脚本,并且该函数将可用。以上是关于powershell 脚本 - 创建 zip 文件,不包括某些文件和文件夹的主要内容,如果未能解决你的问题,请参考以下文章
windows 压缩指定目录下每个目录和文件为zip文件的powershell脚本
windows 压缩指定目录下每个目录和文件为zip文件的powershell脚本