0
votes

compresser plusieurs fichiers dans bzip2

J'ai donc trouvé ce joli lot pour la fenêtre qui compresserait chaque fichier de même extension dans le même répertoire dans le même répertoire en BZIP2 en faisant glisser l'un des fichiers, mais j'aimerais le prendre plus loin et le faire que lorsque je Faites glisser un dossier. Cela compresserait tous les fichiers de celui-ci, y compris les sous-dossiers jusqu'à la fin. Évidemment, je suppose que cela a quelque chose à voir avec la boucle avec l'utilisation de %% D mais je ne pouvais pas le comprendre exactement. XXX


3 commentaires

Bonjour et bienvenue à Stackoverflow! Votre code ne fonctionne pas comme prévu?


Cela fonctionne, mais ce qu'il fait actuellement est lorsque vous faites glisser et déposez un fichier. Il compressera tous les autres fichiers de la même extension dans BZ2. Par exemple, disons que les histoires de dossiers ont Story1.txt story2.txt story3.txt et un sous-dossier appelé romans qui a Novel1.txt Novel2.txt maintenant, je veux les comprimer dans BZ2, alors je prends mon lot et le mettre dans le dossier Histoires Tout ce que je dois faire est de faire glisser-déposer n'importe lequel des fichiers TXT et il les compressera automatiquement à BZ2, mais uniquement les fichiers des histoires et non les romans de sous-dossiers, car je devrais bouger mon lot là-bas.


en romans et faites la même chose pour les fichiers TXT. Mais ce serait fatiguant quand j'ai plus de sous-dossiers et que je dois le faire plusieurs fois. Je souhaite donc faire mon travail par lots par dossier au lieu de fichier. Donc, lorsque je traîne et déposez le dossier. Il compressera tout son contenu (fichiers) en bz2 avec leurs sous-dossiers automatiquement, donc avec une drag et drop story1.txt story2.txt story3.txt dans des histoires sera compressée et sera donc novel1.txt novel2.txt dans les romans de sous-dossier et rester dans leurs répertoires respectivement bien sûr


3 Réponses :


0
votes

Je partage avec vous ce script de lot utile et bien commenté posté par Enteleform sur superutilisateur

Je viens de modifier ceci variable set archivePath = "%% ~ x.zip" à set archivePath = "%% ~ x.bz2"

Comment Pour faire 7-zip faire un tas de dossiers xxx



0
votes

Vous pouvez probablement faire cela avec une seule ligne : xxx

si vous souhaitez le sur plusieurs lignes de lisibilité: xxx

Ces exemples doivent Ne fonctionnez que si vous faites glisser et déposez un répertoire sur celui-ci, ou appelez-le sur la ligne de commande avec un répertoire comme premier argument.


5 commentaires

Merci beaucoup, c'est plus simple que ma solution, mais pourriez-vous faire imprimer les progrès dans la CMD afin que les gens savent combien de temps attendre?


Changer > Nul 2> & 1 à 2> nul , @emotiworld.


@Emotiworld, juste pour des informations, j'ai utilisé l'option -w pour utiliser l'emplacement temporaire de Windows par défaut comme répertoire de travail. Si vos fichiers ne sont pas sur le lecteur système, je vous conseillerais de supprimer le -w , (pour fonctionner directement dans le répertoire source) ou la définir à un autre emplacement sur le même volume, par exemple -wf: \ temp


Une dernière chose, j'ai remarqué que cela ne supprima pas certains fichiers après la compression i.imgur.com/rxvlybo.png


aussi il ne compresse pas toutes sortes de fichiers



0
votes
@echo off

 
for /f %%i in ("%1") do (
    echo %%~di
    echo %%~pi
    echo %%~xi
    set rootpath="%%~di%%~pi*%%~xi"
)
 
for /R %%f in (*) do (
    "C:\Program Files\7-Zip\7z.exe" a -tbzip2 "%%f.bz2" "%%f" -mx9 -x!"packall.bat"
    del "%%f" /s /f /q
)

echo Finished operations!
goto exit

:usage
echo You have to drag and drop a file on this batch script!
echo Sorry for the poor documentation, but if you'll want to use it, you have to edit the .bat file
echo The only thing you really need is to change the path to your 7-Zip installation
echo Then simply drag and drop a file in a folder you want to BZip2, and it'll do the rest automatically
 
:exit
pause
Cheers to my friend Anya who found a solution, so the way it would work with the script above is that you make a batch file name it packall.bat
save it anywhere as it will delete itself at the end of the process.

when you want to compress bunch of files into bz2 you copy it and put it in inside a folder made with any name in your desktop.

make sure its name has no spaces nor its sub-folders as that may confuse batch and make it compress your desktop contents for some reason.

click on the batch, then it will compress all the files within the same folder its in and their sub-folders and automatically delete itself.

Video example:http://billstuff.site.nfoservers.com/e79nwk69.mp4IMPORTANT NOTE for some reason if there duplicate names of files with the same extension at sub-folders they will be deletedDon't forget the folder and its sub-folder names should not have a spaceBest of luck!

0 commentaires