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 に答える