Comment zip dans des dossiers spécifiques avec la Ligne de Commande
Pourriez vous me dire comment zip fichiers spécifiés dans le même fichier Zip. Permettez-moi de dire combien de mes dossiers sont remplies :
- Un planificateur de tâches de sauvegarde de mes bases de données et de les enregistrer dans un fichier de tous les jours. Il crée 4 sauvegarde de base de données quotidiennement ce qui signifie qu'il y aura un peu plus de 4 fichiers par jour. J'ai donc besoin de zip nouvellement créé sauvegardes dans le même fichier zip (bien sûr, il se distingue de la précédente journée fichier zip, le fichier zip sera créé pour que le jour pour les nouveaux fichiers de sauvegarde créés) et j'ai besoin de le faire automatiquement. Eh bien, je sais comment le faire automatiquement. Je peux utiliser le planificateur de tâches de Windows pour automatiser les choses.
Grâce.
- Ok... Donc, vous êtes sur Windows. Voulez-vous écrire un fichier batch? La puissance d'un script Shell? Programme C#?
- Fichier de commandes sir ?
Vous devez vous connecter pour publier un commentaire.
Vous pouvez le faire avec DotNetZip - il a été produit à l'origine comme une bibliothèque pour une utilisation par les programmeurs, mais les exemples d'applications construit et livré avec la bibliothèque sont devenus très utiles dans leur propre droit.
L'un des "échantillons" est appelé zipit.exe - un outil de console. Spécifier un inexistante zipfile pour en créer un nouveau, ou spécifier un zipfile de le mettre à jour.
Vous pouvez spécifier un ou plusieurs noms de fichiers, de répertoires, ou une expression logique qui décrit les fichiers à inclure. Pour les expressions suivantes:
name = *.jpg
tout .fichier jpg.
mtime > 07/01/2009
n'importe quel fichier avec un heure de dernière modification après minuit le 1er juillet 2009. Il est également ctime et atime pour créé le temps et consulté le temps.
ctime > 07/01/2009:07:53:00
n'importe quel fichier avec un date de création après 7:53am le 1er juillet 2009.
size > 320mb
n'importe quel fichier avec une taille de plus de 320 mo. Vous pouvez utiliser ko ou go, trop. Ou supprimer les caractères pour une taille en octets. Et vous pouvez utiliser < ou = que d'exploitation.
attr != H
tout fichier qui n'a pas l'attribut Masqué. Autres caractéristiques comprennent la S=système, R=lecture seule, A=Archive. Bien sûr, vous pouvez vérifier que l'attribut est ainsi (à l'aide de = au lieu de !=).
attr != H and size > 320mb
inclure les fichiers qui satisfont les deux conditions. Vous pouvez également utiliser OU comme une conjonction. Utilisez des parenthèses pour grouper des expressions complexes.
name = *.jpg or name = *.gif
inclure les fichiers qui répondent à l'une ou l'autre condition.
(name = *.jpg) or (name = *.gif)
même que ci-dessus.
(mtime >= 07/01/2009) and (mtime < 07/02/2009)
tout fichier modifié le 1er juillet. De minuit à minuit.
(name = *.jpg) AND (mtime >= 07/01/2009) and (mtime < 07/02/2009)
tout .jpg fichier modifié le 1er juillet.
(name = *.jpg) and (size >= 100kb) and (mtime >= 07/01/2009) and (mtime < 07/02/2009)
tout .jpg fichier de 100 ko ou plus en taille, modifié le 1er juillet.
Avec d'autres options sur le zipit.exe outil, vous pouvez également:
Exemples:
zipit.exe Archive.zip -D c:\project1 -r+ "(name = *.xlsx) and (mtime >= 07/01/2009) and (mtime < 07/31/2009)"
zipit.exe Unpack.exe -sfx w -D project2 -r+ "(name = *.pdf) and (size > 100kb)"
DotNetZip est gratuit.
Toutes ces fonctionnalités sont disponibles dans l' .NET de l'interface de la bibliothèque, trop. Et il y a un outil graphique, trop.
- Je utiliser le programme open source 7Zip avec une ligne de commande comme:
Si vous utilisez une partition NTFS, il peut également permettre de résoudre votre problème pour avoir Windows compresser automatiquement le dossier de vos fichiers de sauvegarde sont dans (clic droit sur votre dossier, sélectionnez Propriétés, Avancé, puis cliquez sur Compresser le contenu pour sécuriser les données).
J'ai abandonné WinZip en faveur de 7-Zip parce que c'est rapide, gratuit, efficace, et disponible pour Windows et Linux.
Si vous êtes un WinZip ventilateur, jetez un oeil à la WinZip command-line support add-on: http://winzip.com/prodpagecl.htm
Vous pouvez archiver plusieurs fichiers ou répertoires que votre ligne de commande de Windows permettra de:
Vous pouvez télécharger GNU zip pour Windows à http://gnuwin32.sourceforge.net/packages/zip.htm. Si vous voulez obtient l'ensemble de la ligne de commande UNIX route, zip est disponible avec http://www.cygwin.com/.
La page de man donne cet exemple qui semble résoudre votre problème, il existe de nombreuses autres options de ligne de commande ainsi:
Par exemple, si foo.zip existe et contient des foo/fichier1 et
foo/fichier2, et le répertoire foo contient les fichiers foo/fichier1 et foo/fichier3, puis:
ou de façon plus concise,
remplacera foo/fichier1 dans foo.zip et d'ajouter foo/fichier3 à foo.zip. Après cela,
foo.zip contient foo/fichier1, foo/fichier2, et foo/fichier3, avec foo/fichier2 inchangé depuis
avant de.
Regarder dans un ancien programme appelé PKZIP. Je crois que vous pouvez aussi le faire avec WinZip et 7-zip.
wzzip -a -ex -r -p (zipname) (folder name)
- la clé, c'est -r = récursive et -p = inclure les informations de chemin d'accès