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 文件,不包括某些文件和文件夹的主要内容,如果未能解决你的问题,请参考以下文章

Powershell zip/move 的问题

使用 PowerShell 重命名 zip 以匹配其内容

windows 压缩指定目录下每个目录和文件为zip文件的powershell脚本

windows 压缩指定目录下每个目录和文件为zip文件的powershell脚本

windows 压缩指定目录下每个目录和文件为zip文件的powershell脚本

在 Powershell 中创建除某些文件和文件夹之外的 zip 文件的功能