thomas.1978

Per Batch bestimmte Anzahl an Dateien zippen

Guten Abend liebe Community,
ich habe folgende Frage:
Ich habe in einem Ordner ca. 850 Dateien.

Und ich wollte gerne immer nur jeweils 100 Dateien zippen und dann als 1.zip im selben Ordner speichern.
Und dann die nächsten 100 Dateien als 2.zip speichern, bis am Ende alle Dateien gezippt sind.
So daß am Ende es 9 Zip Dateien sind.

Die Original Dateien sollten bitte trotzdem im Ordner bleiben face-smile

Ich habe Windows 10 und habe auch 7-Zip Installiert.

Ich bin über jede Batch oder Powershell Hilfe dankbar.
Auch über jeden Link hier im Forum wo diese Frage/Antwort schon zu finden ist.

Vielen Dank.

Gruß

Thomas
Auf Facebook teilen
Auf X (Twitter) teilen
Auf Reddit teilen
Auf Linkedin teilen

Content-ID: 2733359189

Url: https://administrator.de/forum/per-batch-bestimmte-anzahl-an-dateien-zippen-2733359189.html

Ausgedruckt am: 06.06.2025 um 02:06 Uhr

mbehrens
mbehrens 09.05.2022 um 23:05:09 Uhr
Goto Top
mal ins Unreine:
Set-Variable setSize -option Constant -Value 33
$i = 0
$zipSet = 0

Get-ChildItem .\ | ForEach-Object {
    $zipSetName = "archive" + ($zipSet + 1) + ".zip"  
    Compress-Archive -Path $_.FullName -Update -DestinationPath ".\$zipSetName"  
    $i++;

    if ($i -eq $setSize) {
        $i = 0;
        $zipSet++;
    }
}
colinardo
Lösung colinardo 10.05.2022 aktualisiert um 00:28:56 Uhr
Goto Top
Servus.
Powershell:
# max size of each set
$max = 100
# folder with files
$folder = 'E:\Dateien'  
# get all files of folder (since we only need the path of all files, this variant is way faster then Get-ChildItem)
$files = [IO.Directory]::GetFiles($folder)
# initialize counters
$done = 0;$cnt = 1
# loop until all files are zipped
while($done -lt $files.count){
    # zip set of $max number of files
    $files | select -skip $done -First $max | compress-archive -Destinationpath "$folder\$('{0:D2}' -f $cnt).zip"  
    $cnt++; $done += $max
}
Grüße Uwe
Thomas.1978
Thomas.1978 10.05.2022 um 16:34:21 Uhr
Goto Top
Hallo Uwe,
vielen Dank für deine Hilfe.
Powershell läuft bestens face-smile

Gruß

Thomas