2

我正在尝试创建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 命令可以正常工作,但是如何在脚本文件的功能中使用它

请建议...

4

1 回答 1

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} |
于 2012-09-19T02:12:59.277 回答