Frage

Könnten Sie mir sagen, wie Menschen bestimmte Dateien in derselben Zip-Datei zip. Lassen Sie uns sagen, wie meine Ordner gefüllt sind:

  • Ein Task-Scheduler haben Backups meiner Datenbanken und täglich sie in einer Datei speichern. Es schafft 4 Datenbank-Backup täglich, das bedeutet, dass es täglich mehr Dateien 4 sein wird. Also muss ich neu erstellte Backups in gleichen Zip-Datei zip (natürlich unterscheidet es sich von Vortages Zip-Datei, wird die Zip-Datei für neu erstellte Backup-Dateien für diesen Tag erstellt werden) und ich brauche es automatisch zu tun. Nun, ich weiß, wie es zu automatisieren. Ich kann Windows-Taskplaner verwenden, um Dinge zu automatisieren.

Danke.

War es hilfreich?

Lösung

Sie können es mit DotNetZip - es ursprünglich als Bibliothek für Programmierer produziert wurde, aber die Probe apps gebaut auf und mit der Bibliothek versandt hat in ihrem eigenen Recht sehr nützlich.

Einer der „Proben“ genannt wird zipit.exe - ein Konsolen-Tool. Geben Sie einen nicht vorhandenen zipfile einen neuen zu erstellen, oder geben Sie einen vorhandenen zipfile es zu aktualisieren.

zipit.exe ZipArchive.zip  c:\data\folder1

Sie können angeben, einen oder mehr Dateinamen, Verzeichnisse oder einen logischen Ausdruck, die Include-Dateien beschrieben. Für die Ausdrücke:

  • name = *.jpg
    jede JPG-Datei.

  • mtime > 07/01/2009
    jede Datei mit einem Zeitpunkt der letzten Änderung nach Mitternacht am 1. Juli 2009 Es gibt auch ctime und atime für erstellte Zeit und abgerufen Zeit.

  • ctime > 07/01/2009:07:53:00
    jede Datei mit einem erstellt Zeit nach 07.53 Uhr am 1. Juli 2009

  • size > 320mb
    jede Datei mit einer Größe über 320 MB. Sie können verwenden kb oder gb , auch. Oder die Zeichen für eine Größe in Bytes weglassen. Und Sie können

  • attr != H
    jede Datei, die das Attribut Versteckt Satz nicht verfügt. Andere Attribute sind S = System, R = Read-Only, A = Archiv. Natürlich können Sie testen, ob das Attribut auch ist (= statt mit! =).

  • attr != H and size > 320mb
    sind die Dateien, die beide Bedingungen erfüllen. Sie können auch oder als conjuction verwenden. Verwenden parens gruppieren komplexe Ausdrücke.

  • name = *.jpg or name = *.gif
    sind die Dateien, die eine oder die andere Bedingung erfüllen.

  • (name = *.jpg) or (name = *.gif)
    wie oben.

  • (mtime >= 07/01/2009) and (mtime < 07/02/2009)
    jede Datei am 1. Juli geändert. Von Mitternacht bis Mitternacht.

  • (name = *.jpg) AND (mtime >= 07/01/2009) and (mtime < 07/02/2009)
    jede JPG-Datei am 1. Juli geändert.

  • (name = *.jpg) and (size >= 100kb) and (mtime >= 07/01/2009) and (mtime < 07/02/2009)
    jedes JPG-Datei, 100 KB oder mehr in der Größe, am 1. Juli geändert.

Mit anderen Optionen auf dem zipit.exe-Tool, können Sie auch:

  • angeben, ob Sie Analysepunkte verfahren möchten (wie Symlinks oder Kreuzungen, zB „My Music“).
  • recurse Verzeichnisse oder nicht (Standard ist NOT)
  • verschlüsselt die Zip mit AES oder mit "normaler" zip-Verschlüsselung
  • Geben Sie einen Segmentgröße eines übergreifenden oder segmentierten Zip-Datei zu erzeugen.
  • erzeugen eine selbstextrahierende Archiv

Beispiele:

zipit.exe Archive.zip -D c:\project1 -r+ "(name = *.xlsx) and (mtime >= 07/01/2009) and (mtime < 07/31/2009)"

  • Erstellen Sie eine Datei, Archive.zip, die alle .xslx Dateien im c enthält: \ project1 Verzeichnishierarchie, die im Juli geändert wurden.

zipit.exe Unpack.exe -sfx w -D project2 -r+ "(name = *.pdf) and (size > 100kb)"

  • Erstellen Sie eine selbstextrahier GUI exe, namens Unpack.exe, die alle PDF-Dateien im project2 Verzeichnishierarchie enthält, die größer als 100k in der Größe sind.

DotNetZip ist frei.

All diese Funktionen in der .NET-Schnittstelle der Bibliothek ebenfalls verfügbar. Und es gibt ein GUI-Tool auch.

Andere Tipps

Ich verwende das Open-Source-Programm 7Zip mit einer Befehlszeile wie:

"C:\Program Files\7-Zip\7z.exe" a My.zip MyFileOrFolder

Wenn Sie eine NTFS-Partition verwenden, könnte es auch Ihr Problem lösen von Windows automatisch den Ordner komprimieren, um Ihre Backup-Dateien sind in (Rechtsklick auf den Ordner, und wählen Sie Eigenschaften, Erweitert, und klicken Sie auf Inhalt komprimieren, um Daten zu schützen) .

Ich habe WinZip aufgegeben zugunsten von 7-Zip , weil es schnell, kostenlos, effizient und ist für Windows und Linux verfügbar.

Wenn Sie eine WinZip-Fan sind, werfen Sie einen Blick auf die WinZip Kommandozeilen-Unterstützung Add-on: http : //winzip.com/prodpagecl.htm

Sie können beliebig viele Dateien oder Verzeichnisse als Windows-Kommandozeile archivieren können:

wzzip archive.zip dir1 dir2 dir3 ...

können Sie kostenlos herunterladen GNU Zip für Windows unter http://gnuwin32.sourceforge.net/packages /zip.htm . Wenn Sie die gesamte UNIX-Befehlszeile Route bekommen möchten, zip ist mit http://www.cygwin.com/ .

Der Mann Seite gibt dieses Beispiel, das Ihr Problem zu lösen scheint, gibt es viele andere Befehlszeilenoptionen auch:

Zum Beispiel, wenn foo.zip existiert und enthält foo / file1 und    foo / file2, und das Verzeichnis foo enthält die Dateien foo / file1 und foo / file3, dann:

      zip -r foo.zip foo

oder prägnante

      zip -r foo foo

wird foo / file1 in foo.zip ersetzen und foo / file3 foo.zip hinzuzufügen. Danach,    foo.zip enthält foo / file1, foo / file2 und foo / file3 mit foo / file2 unverändert    vor.

Schauen Sie in ein altes Programm namens PKZIP. Ich glaube, Sie können dies auch mit WinZip und 7Zip.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top