Batch Script Using 7zip: Je veux que les fichiers zip portent le nom comme fichier d'origine

0

J'ai très peu d'expérience dans la création de fichiers .bat - j'ai plusieurs fichiers .bak que je dois compresser - ce répertoire reçoit régulièrement de nouveaux fichiers .bak. J'essaie de configurer un travail qui recherche tous les fichiers .bak et les compresse. Je souhaite transmettre le nom de fichier .bak afin que le fichier .zip porte le même nom que le fichier .bak.

Donc TestFile1.bak = TestFile1.zip, TestFile2.bak = TestFile2.zip ... etc

Je l'ai jusqu'à présent et cela fonctionne pour compresser un seul fichier, ou bien il zippe plusieurs fichiers .bak dans un fichier single.zip. Je n'arrive pas à comprendre comment passer par le nom de fichier .bak.

7a un -tzip "C: \ TestArchive \ AutoArchived \" "C: \ TestArchive *. *" -Mx5

BeratingMantis
la source

Réponses:

0

Ce qui pourrait vous aider, c'est la commande FOR.

for /f "delims=#" %%i in ('dir /b *.bak') do ( 
  echo now working on file %%i
  rem use %%i in the 7zip command to compress only one file
)

Cela va boucler tous les fichiers retournés par la commande dir. Avec chaque boucle %%, je contiendra un fichier que vous pourrez ensuite utiliser pour votre commande 7zip.

Florian Straub
la source