Software, die Dateien in einem Verzeichnis in mehrere ZIP-Dateien mit jeweils 10 Dateien archivieren kann

Ich suche eine Archivsoftware mit diesen Anforderungen:

  • Möglichkeit, Dateien in mehreren .zip-Dateien zu archivieren, die jeweils maximal 10 Dateien enthalten
  • Kompatibel mit Windows 10
Bitte beachten Sie, dass es auf dieser Seite darum geht, Software zu empfehlen, nicht um Assets wie Howtos, Handbücher usw. – daher ist die Frage, wie Sie dies mit WinRAR unter Windows 10 erreichen können, hier kein Thema. Es könnte eine passende Frage zu SuperUser sein (bitte überprüfen Sie ihre /help/on-topicSeite, bevor Sie dort posten). Aus Ihrer Absicht heraus würde eine hier passende Frage lauten: "Software, die unter Windows 10 ausgeführt wird und Dateien in einem Verzeichnis in mehrere ZIP-Dateien mit jeweils 10 Dateien archivieren kann".
Das sieht jetzt eher nach einer Softwareempfehlung aus.
@Lafix Haben Sie Vorlieben bezüglich der Namen der resultierenden ZIP-Dateien?
Ich verstehe den Anwendungsfall nicht. Sie haben zB 20 Dateien, 10 Dateien mit 1 GB, 10 Dateien mit 1 kB. Warum möchten Sie 1 Zip-Archiv mit 10 GB und ein weiteres mit 10 kB? Es ist viel sinnvoller, nach Größe zu trennen.

Antworten (1)

Die Anfrage ist ziemlich spezifisch, ich bin mir nicht sicher, ob etwas mit dieser Funktionalität sofort einsatzbereit ist.

Mein Vorschlag wäre, so etwas wie ein benutzerdefiniertes Skript zu verwenden, das Ihnen auch eine gute Flexibilität bietet.

Da Sie Windows verwenden, habe ich schnell ein einfaches PowerShell-Skript für Sie entwickelt.

Erstellen Sie eine .ps1 -Textdatei (z. B. Create-MultiZip.ps1 ) mit folgendem Inhalt:

param
(
    # The input folder containing the files to zip
    [Parameter(Mandatory = $true)]
    [string] $InputFolder,

    # The output folder that will contain the zip files
    [Parameter(Mandatory = $true)]
    [string] $OutputFolder
)

Set-Variable SET_SIZE -option Constant -value 10
$i = 0
$zipSet = 0

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

    if ($i -eq $SET_SIZE) {
        $i = 0;
        $zipSet++;
    }
}

Führen Sie es dann in einer PowerShell-Umgebung aus und geben Sie den Ordner an, der die Dateien enthält, die Sie komprimieren möchten, gefolgt von dem Ordner, der die ZIP-Dateien enthält. Zum Beispiel:

Create-MultiZip.ps1 C:\tmp\input C:\tmp\output

Was macht das Skript?
Grundsätzlich erhält es eine Liste aller Dateien im Eingabeordner, dann wird jede Datei zur Datei archive1.zip im Ausgabeordner hinzugefügt, bis die vorgegebene festgelegte Größe erreicht ist. An diesem Punkt wird eine neue archive2.zip -Datei erstellt, die gleiche wie zuvor ... und so weiter, bis alle Dateien in der Eingabe verarbeitet wurden.
Beachten Sie, dass die resultierenden Dateien aufgerufen werden archive<n>.zip, wobei ndie fortlaufende Nummer für jede ZIP-Datei steht.

Das Herzstück des Skripts ist das Cmdlet . Es wurde kürzlich mit PowerShell 5.0 eingeführt, das standardmäßig in Windows 10 enthalten ist.Compress-Archive

Wenn Sie sich ein wenig mit Powershell auskennen, kann das Skript leicht verbessert werden, indem Sie beispielsweise ein CompressionLevel, oder eine Textausgabe auf der Konsole hinzufügen.

Es ist auch einfach, die Anzahl der Dateien zu ändern, die Sie in jedem Satz haben möchten, Sie müssen nur den konstanten Wert in der folgenden Zeile ändern:

Set-Variable SET_SIZE -option Constant -value 10

Ich habe das Skript kurz getestet und es funktioniert gut - es versteht sich von selbst, dass Sie es zuerst mit einigen Testdateien versuchen sollten.