Czy Powershell może zautomatyzować tworzenie indywidualnych plików ZIP dla każdego pliku w katalogu?


1

Pytanie: Czy program Powershell może automatycznie utworzyć osobny skompresowany plik archiwum dla każdego obiektu znalezionego w katalogu?

Tło:

  • Katalog zawierający kilkaset plików (różne typy plików)
  • Muszę utworzyć spakowane archiwum dla każdego z nich.

Przepływ pracy koncepcji:

  1. Skrypt Powershell jest skierowany do katalogu
  2. Program Powershell odkrywa kilka plików (różne rozszerzenia)
  3. Program Powershell automatycznie kompresuje plik „Widget.CFG” do pliku .ZIP
  4. Proces powtarza się dla każdego innego obiektu znalezionego w tym samym katalogu

Środowisko:

  • System operacyjny Windows 7/64 Bit
  • Wersja PowerShell 5 (Ważna: 5 Mniejsza: 1 Kompilacja: 15363 Wersja: 786)

czy to możliwe?

Skrypt, który wymyśliłem (poniżej), nie generuje żadnych wyników i jestem zaskoczony, dlaczego.

Co mam do tej pory:

$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   
        }   
    }   
}    

W jakiej wersji PowerShell i Windows miałoby to być użyte?
Jeff Zeitlin

- Windows 7/64 Bit OS - Powershell wersja 5 (Major: 5 Minor: 1 Build: 15363 Revision: 786)
TPK

1
Tak, jest to możliwe, ale należy pamiętać, że superuser.com nie jest bezpłatną usługą pisania skryptów / kodów. Jeśli powiesz nam, co próbujesz do tej pory (dołącz skrypty / kod, którego już używasz) i gdzie utknąłeś, możemy spróbować pomóc w rozwiązaniu określonych problemów. Powinieneś także przeczytać Jak zadać dobre pytanie? .
DavidPostill

1
Podczas gdy @DavidPostill ma rację w swoim komentarzu, zaoferuję ci podstawową pomoc na początek: Polecam twoją uwagę temu Hej Skrypciarze! oraz dokumentacja Microsoft na Compress-Archivecmdlet.
Jeff Zeitlin

@DavidPostill - Edytowany post zgodnie z prośbą. Proszę usunąć blokadę?
TPK,
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.