O Powershell pode automatizar a criação de arquivos ZIP individuais para cada arquivo em um diretório?

1

Pergunta: Pode o Powershell criar automaticamente um arquivo compactado individual para cada objeto que encontrar dentro de um diretório?

Histórico:

  • Um diretório com algumas centenas de arquivos (vários tipos de arquivos)
  • Eu preciso criar um arquivo compactado para cada um deles.

Fluxo de trabalho do conceito:

  1. O Powershell Script é apontado para um diretório
  2. Powershell descobre vários arquivos (várias extensões)
  3. O Powershell compacta automaticamente "Widget.CFG" em um arquivo .ZIP
  4. O processo é repetido em relação a todos os outros objetos encontrados no mesmo diretório

Ambiente:

  • Windows 7/64 Bit OS
  • Powershell versão 5 (Major: 5 Menores: 1 Build: 15363 Revisão: 786)

Isso é possível?

O script que eu criei (abaixo) não produz nenhuma saída, e estou perplexo quanto ao porquê.

O que eu tenho até agora:

$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   
        }   
    }   
}    
    
por TPK 15.03.2018 / 17:22

0 respostas

Tags