J'ai eu un tas d'images que je devais récolter dans 800x600 pixels. Cela a été facilement fait, mais je dois maintenant les télécharger afin que la famille puisse les voir tous.
Chose est, c'est 500 Mo en images. J'ai décidé de simplement zip les dossiers séparés, qui contiennent chacun une quantité presque égale d'images. De cette façon, je peux télécharger un couple chaque jour. Faire cela manuellement est un travail très long et dur. Je me demande s'il y a un moyen de faire de la poignée 7-zip chaque dossier individuellement?
Je pense que j'aurai besoin d'un fichier de lot pour le faire, mais je ne suis pas bon avec ça. J'ai tout mis sous un dossier. Dans les différents sous-dossiers, c'est où se trouvent les images. Ce dont j'ai besoin, c'est que le contenu de ce dossier soit zippé. Je ne sais pas si je peux simplement convertir le dossier avec elle. Je sais PHP a un module ZIP, je n'ai jamais travaillé avec elle, alors je ne sais pas si cela peut supporter le fait que le contenu du zip est un dossier contenant le articles, au lieu de juste les articles.
Exécuter à partir d'une invite de commande dont votre répertoire de travail est votre My Pictures
Répertoire, cette commande créera un fichier zip du contenu de chaque sous-répertoire, laissant tous les fichiers zip de votre My Pictures
répertoire.
Edit : J'ai ajouté les guillemets nécessaires pour permettre aux annuaires avec des espaces dans leurs noms.
for /D %%d in (*.*) do 7z a -tzip "%%d.Zip" "%%d"
Aussi : La version suivante ne mettra pas des fichiers dans un sous-répertoire à l'intérieur du fichier zip, mais à la base de sa racine:
for /D %%d in (*.*) do 7z a -tzip "%%d.Zip" ".\%%d\*"
sous Windows 7 et plus
for /D %d in (*.*) do 7z a -tzip "%d.Zip" "%d"
ou alors
for /D %d in (*.*) do 7z a -tzip "%d.Zip" ".\%d\*"
Je n'ai pas pu obtenir la ligne de commande à travailler, mais j'ai téléchargé WinRar et MTONE a eu raison - WinRar a une option pour connecter plusieurs dossiers dans leurs propres fichiers zip distincts.
Par exemple. C:\Files\Fables 01
dans C:\Files\Fables 01.Zip
, et C:\Files\Fables 02
dans C:\Files\Fables 02.Zip
.
Avec WinRar, ouvrez le dossier contenant les dossiers que vous souhaitez sélectionner, puis procédez comme suit:
Lorsque vous avez d'autres paramètres que vous avez comme corrigé, cliquez sur OK et Boom: plusieurs fichiers zip de plusieurs dossiers. Cela a tellement fonctionné plus facile que la ligne de commande 7zip.
Juste une légère mise à jour de la réponse de once81: le code ci-dessous crée un fichier de commandes que plusieurs éléments peuvent être supprimés.
@echo off
if [%1]==[] goto :eof
:loop
7z a -tzip "%~1.Zip" "%~1"
shift
if not [%1]==[] goto loop
Ce fichier de commandes peut ensuite être ajouté au menu contextuel via le registre:
Donc, par exemple, mon entrée est "c:\users\rory\dropbox\_apps\batch_zip.bat" "% 1" "
Une fois que vous ferez cela, vous aurez une entrée dans votre menu contextuel pour 'Zip Batch' qui lottera zip tous les dossiers sélectionnés dans des archives distinctes
Toutefois, si vous faites cela via le menu contextuel, cela dirigera malheureusement toutes les opérations simultanément et que quiconque a fait beaucoup de zipping et de décompression saura savoir, les dossiers de zipping fonctionnent beaucoup plus rapidement après l'autre que tout à la fois.
Si quelqu'un sait un moyen de résoudre ce problème dans le registre, veuillez dire.
Faites glisser les dossiers sélectionnés sur le lot les fera une après l'autre.
Conseil: Si vous êtes des images, des JPGS, ils sont déjà compressés. Utilisez le mode 'Archive' en mode 'Archives' sans compression (Niveau de compression: Stocker) Cela accélérera le processus énormément.
même si vous utilisez Ultra Compression, vous gagnerez à peine 5%, ne valez certainement pas l'effort.
Je pensais en termes d'adéquation pratiquement des pièces jointes.
je ne leur enverrais pas comme pièce jointe. Plutôt téléchargez-le sur un serveur d'hébergement à un clic (E.G. Drop.io, RS, MU, MS, etc., les choix sont nombreux), puis envoyez le lien de téléchargement par courrier électronique à vos amis et à votre famille.
J'ai trouvé Roryok La réponse est très utile, il a fourni un batch script
pour Windows
qui vous permet de drag-&-drop
Fichiers pour archivage rapide et automatisé.
Pour utiliser ce script, il suffit de l'enregistrer avec un .bat
Extension, puis vous pouvez faire glisser-déposer des fichiers et/ou des dossiers sur le fichier de commandes ( ou un raccourci vers le fichier de lot ).
.Zip
Les fichiers seront créés dans le même répertoire que les fichiers source.
[.____] ( Bien que la destination puisse être modifiée dans le script @ archivePath
)
Quelques mises à jour que j'ai faites pour améliorer la facilité de personnalisation et fonctionnalité globale:
for
qui itère à travers les arguments donnésdelayedexpansion
pour permettre des variables d'exécution )if
conditions de différenciation files
& folders
[.____]\archive.Zip\file.txt
[~ # ~] vs [~ # ~ ~]\archive.Zip\parent_folder\file.txt
)@Echo OFF
SetLocal EnableDelayedExpansion
Rem // 7-Zip Executable Path
Set sevenZip="C:\Program Files\7-Zip\7z.exe"
Rem // START: NewLine Variable Hack
Set newLine=^
Rem // END: NewLine Variable Hack !! DO NOT DELETE 2 EMPTY LINES ABOVE !!
Rem // Set ErrorLog Variables
Set errorCount=0
Set separator=--------------------------------------------------------
Set errorLog=!newLine!!newLine!!separator!!newLine!!newLine!
Set errorPrefix=ERROR @:
Set successMessage=All Files Were Successfully Archived
Rem // Loop Through Each Argument
SetLocal DisableDelayedExpansion
for %%x in (%*) do (
Rem // Use Current Argument To set File, Folder, & Archive Paths
SetLocal DisableDelayedExpansion
Set filePath="%%~x"
Set directoryFiles="%%~x\*"
Set archivePath="%%~x.Zip"
SetLocal EnableDelayedExpansion
Rem // Source Is A Folder
if exist !directoryFiles! (
Set sourcePath=!directoryFiles!
)
Rem // Source Is A File
if not exist !directoryFiles! (
Set sourcePath=!filePath!
)
Rem // Print Separator To Divide 7-Zip Output
echo !newLine!!newLine!!separator!!newLine!!newLine!
Rem // Add Files To Zip Archive
!sevenZip! A -TZIP !archivePath! !sourcePath!
Rem // Log Errors
if ErrorLevel 1 (
Set /A errorCount=errorCount+1
Set errorLog=!errorLog!!newLine!!errorPrefix!!sourcePath!
)
)
Rem // Print ErrorLog
if !errorCount!==0 (
Set errorLog=!errorLog!!newLine!!successMessage!
)
Echo !errorLog!!newLine!!newLine!!newLine!
Rem // Keep Window Open To View ErrorLog
pause
7-Zip a une option pour décompresser chaque fichier dans son propre dossier (* /), mais il manque les commandes de contexte pour faire l'action opposée que vous recherchez.
Cela dit, je me souviens de faire cette chose exacte en utilisant WinRar dans le passé. Il y a une option "archive unique par dossier" ou quelque chose à cet effet.