Kann Powershell die Erstellung einzelner ZIP-Dateien für jede Datei in einem Verzeichnis automatisieren?


1

Frage: Kann Powershell für jedes Objekt, das in einem Verzeichnis gefunden wird, automatisch eine einzelne komprimierte Archivdatei erstellen?

Hintergrund:

  • Ein Verzeichnis mit ein paar hundert Dateien (verschiedene Dateitypen)
  • Ich muss für jedes Archiv ein ZIP-Archiv erstellen.

Konzept Workflow:

  1. Powershell Script zeigt auf ein Verzeichnis
  2. Powershell entdeckt eine Reihe von Dateien (verschiedene Erweiterungen)
  3. Powershell komprimiert "Widget.CFG" automatisch in eine ZIP-Datei
  4. Prozesswiederholungen für jedes andere Objekt, das sich in demselben Verzeichnis befindet

Umgebung:

  • Windows 7/64-Bit-Betriebssystem
  • Powershell Version 5 (Major: 5 Minor: 1 Build: 15363 Revision: 786)

Ist das möglich?

Das Skript, das ich mir ausgedacht habe (siehe unten), erzeugt keine Ausgaben, und ich bin ratlos, warum.

Was ich bisher habe:

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

Auf welcher Version von PowerShell und Windows würde dies verwendet?
Jeff Zeitlin

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

1
Ja, das ist möglich, aber bitte beachten Sie, dass superuser.com kein kostenloser Skript- / Code-Schreibservice ist. Wenn Sie uns mitteilen, was Sie bisher versucht haben (einschließlich der Skripte / des Codes, den Sie bereits verwenden) und wo Sie steckengeblieben sind, können wir versuchen, bei bestimmten Problemen zu helfen. Sie sollten auch lesen Wie stelle ich eine gute Frage? .
DavidPostill

1
Während @DavidPostill in seinem Kommentar ganz richtig ist, biete ich Ihnen einige grundlegende Hilfestellungen für den Einstieg: Ich empfehle Ihre Aufmerksamkeit diesem Hey, Scripting Guy! und Microsoft-Dokumentation zum Compress-ArchiveCmdlet.
Jeff Zeitlin

@DavidPostill - Bearbeiteter Beitrag wie angefordert. Bitte entfernen Sie den Laderaum?
TPK
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.