J'utilise l'exécutable de la ligne de commande 7z pour les fichiers Zip, mais je vois qu'en ajoutant à une archive le chemin des fichiers est conservé dans l'archive.
Donc si je le fais
7z a -tzip myzip.Zip dir1\dir2\*
l'archive myzip.Zip contiendra le chemin dir1\dir2. Je ne veux pas cela, je veux plutôt que les fichiers soient ajoutés au fichier Zip sans que les chemins soient conservés. J'ai cherché pas mal mais ne semble pas trouver de moyen de le faire, peut-être que je manque quelque chose d'évident?
Merci
Donnez le chemin complet. Cela devrait fonctionner. Pas le chemin relatif depuis l'emplacement actuel. Par exemple, je donne ci-dessous, où je veux que les fichiers du dossier man5 soient archivés.
$ 7z a -tzip myzip.Zip /home/pradeeban/Desktop/man4/man5/*
Le Zip ne contenait que les fichiers, sans les répertoires.
Ensuite, je n'ai donné que le chemin relatif. Il y avait les répertoires, à l'intérieur du Zip.
$ 7z a -tzip myzip.Zip Desktop/man4/man5/*
Essayé avec Linux (Ubuntu 12.04). Je ne sais pas si cela diffère de Windows.
Ajoutez simplement un point avant le chemin, c'est-à-dire 7z a -tzip -r myzip.Zip .\Relative\Dir\*
J'ai découvert un moyen de le faire en utilisant un chemin d'accès relatif:
7z a -tzip myzip.Zip %CD%\dir1\dir2\*
% CD% est la façon dont vous obtenez le chemin d'accès actuel dans un fichier de commandes Windows, mais cela fonctionne également à partir de la ligne de commande. Plus d'informations sur Capture du répertoire courant à partir d'un fichier batch .
Comme expliqué dans la question connexe dans FAQ utilisateur 7-Zip , 7z stocke les chemins relatifs au répertoire de travail, vous devrez donc d'abord cd
vers le répertoire de niveau supérieur souhaité pour l'archivage et exécutez 7 -Zip d'ici.
cd dir1\dir2\
7z a -tzip myzip.Zip *
Si vous l'exécutez à partir d'un script et que vous ne souhaitez pas l'affecter avec le répertoire modifié, utilisez les fonctionnalités Push/pop du répertoire disponibles dans votre shell de choix ou exécutez cd + 7-Zip dans le processus généré pour éviter d'affecter l'intégralité de votre script avec le répertoire modifié. Par exemple, utiliser le démarrage de Windows serait:
start /D dir1\dir2\ /wait 7z a -tzip myzip.Zip *
Cela a fonctionné pour moi
Considérez la structure de dossiers comme C:\Parent\SubFolders ..... Et vous voulez créer parent.Zip qui contiendra tous les fichiers et dossiers C:\Parent sans dossier parent [c'est-à-dire qu'il commencera à partir de SubFolders .....]
cd /D "C:\Parent"
"7z.exe" a Parent.Zip "*.*" -r
Cela va créer Parent.Zip dans C:\Parent