Je crée un utilitaire de sauvegarde qui compresse tous les fichiers répertoriés dans un fichier texte. J'utilise MS Access comme frontal et 7-Zip pour la compression. Ce sont les commandes que j'utilise:
7zG.exe a c:\Backup\backup.Zip
@c:\temp\tmpFileList.txt
Tous les fichiers sont compressés sans leur chemin. Est-il possible d'inclure le chemin d'accès de chaque fichier dans le fichier Zip? Ensuite, lorsque backup.Zip
est extrait, les fichiers sont restaurés dans leur structure de dossiers d'origine.
Merci
Dans ce fil de discussion 7-Zip du forum , dans lequel de nombreuses personnes expriment le souhait de cette fonctionnalité, le développeur de 7-Zip, Igor, pointe sur le FAQ question intitulé "Comment enregistrer le chemin fichier dans les archives? "pour obtenir un résultat similaire.
En bref:
C:\
, une pour D:\
, etc.)cd /d C:\
)C:\Foo\Bar
devient Foo\Bar
)7z a archive.7z @filelist
comme auparavant avec cette nouvelle liste de fichiersLe programme en ligne de commande pour 7-Zip est 7z ou 7za. Voici un post utile sur les options disponibles. L'option -r (recurse) stocke les chemins.
Je ne me suis pas penché sur la question, mais en tirant de la hanche, je dirais qu'ils ont abandonné le support en ligne de commande dans le portable. La raison pour laquelle les gens ne font pas beaucoup de choses en ligne de commande dans les applications portables est que le système d'exploitation (Windows dans votre cas) nécessite que les exécutables soient ajoutés à la liste d'inclusion% path%.
Si cette exigence n'est pas remplie, utiliser des utilitaires de ligne de commande est plutôt fastidieux.
7z -a.
serait
d:\portable\z7\z7 -a c:\vers\archive\dossier *. *
C’est pourquoi les interfaces graphiques ont du sens avec des applications telles que les applications portables. Celles-ci (l’application) peuvent se souvenir de leur propre emplacement et gérer ces informations pour vous. Si vous ne pouvez pas les exécuter, vous savez qu’elles ne sont pas attachées.
Si vous voulez vraiment que l'application portable contienne ce contenu, vous pouvez toujours installer la version complète, puis extraire le fichier 7z.exe requis et le placer dans le dossier portable en vous assurant qu'il est bien dans le fichier DLL requis.
Vous devrez définir votre chemin lorsque vous frappez le shell après vous être assuré qu'il est attaché.
http://www.redfernplace.com/software-projects/patheditor/ - un bon éditeur de chemin (bas) utile si vous avez beaucoup d'informations sur le chemin 20+ sont difficiles à lire.
http://www.softpedia.com/get/System/System-Misc Miscellaneous/Path-Editor.shtml - source d'alternet pour l'éditeur de chemin
Il est déconseillé de modifier votre chemin système pour les lecteurs "portables" temporaires bien que vous le fassiez manuellement:
set path =% path%; "d:\portable\z7 \";
lorsque vous exécutez dos cmd.exe ou http://sourceforge.net/p/conemu/home/Home/
Les autres réponses abordent mieux les problèmes que je ne vais pas essayer ..
http://www.codejacked.com/Zip-up-files-from-the-command-line/ - une bonne référence pour l'utilisation en ligne de commande de z7 et z7a.
PS: désolé pour la nécro mais j’ai pensé qu’il avait besoin d’une réponse plus directe à pourquoi (même si c’est hypothétique).
essaye celui-là. cela a fonctionné pour moi. 7z.exe et d:\newFileName.7z "d:\ExistingFile.txt"
ouvrez cmd et si vous avez installé l'application 7Zip, essayez ceci. à l'invite de commande, il va aimer c:\programmes et fichiers\7Zip\7z.exe et d:\newFileName.7z "d:\ExistingFile.txt"
Depuis la version 7-Zip 9.25 alpha , un nouveau commutateur -spf
peut être utilisé pour stocker les chemins de fichiers complets, y compris la lettre de lecteur, dans l'archive.
7zG.exe a -spf c:\BAckup\backup.Zip @c:\temp\tmpFileList.txt
devrait fonctionner très bien maintenant.
7-Zip veut des chemins relatifs dans le fichier liste sinon il ne stockera que les noms de fichiers, ce qui provoquera une erreur de nom de fichier en double.
En supposant que votre liste contienne des noms de chemins complets:
Si votre fichier de liste contient des chemins relatifs à un autre dossier, vous devez exécuter 7Z à partir de ce dossier.
Mise à jour: j'ai remarqué dans un autre message ci-dessus que le nouveau 7-Zip a une option -spf qui ne nécessite pas les étapes ci-dessus. Pas encore testé, mais mes étapes concernent les versions antérieures ne disposant pas de cette option.