1

Вопрос: Может ли Powershell автоматически создавать отдельный архивный файл для каждого объекта, найденного в каталоге?

Фон:

  • Каталог с несколькими сотнями файлов в нем (различные типы файлов)
  • Мне нужно создать заархивированный архив для каждого из них.

Концепция рабочего процесса:

  1. Сценарий Powershell указывает на каталог
  2. Powershell обнаруживает кучу файлов (различные расширения)
  3. Powershell автоматически сжимает «Виджет».CFG "в.ZIP файл
  4. Процесс повторяется против каждого другого объекта, найденного в том же каталоге

Среда:

  • ОС Windows 7/64 Bit
  • Powershell version 5 (Major: 5 Minor: 1 Build: 15363 Редакция: 786)

Это возможно?

Сценарий, который я придумал (ниже), не дает никаких результатов, и я озадачен, почему.

Что у меня так далеко:

$Path = "C:\ziptest"   

function Compress-ChildItem {   
    [CmdletBinding()]   
    param(   
        [Parameter(Position = 0, Mandatory, ValueFromPipeline)]   
        [ValidateNotNull()]   
        [System.IO.DirectoryInfo[]]   
        $Path   
    )   
    process {   
        Get-ChildItem -File $Path | ForEach-Object {   
            $NewName = "{0}-{1}.zip" -f $_.BaseName, ($_.Extension -replace '.')   
            $CompressionParams = @{   
                DestinationPath = Join-Path $Path -ChildPath $NewName   
                Path = $_.FullName   
            }   
            Compress-Archive @CompressionParams   
        }   
    }   
}    

0