[batch] symbol /code désignant tout fichiers

Bonjour a tous,

J'ai plusieurs dossiers portant différents nom et à qui je souhaite attribuer une même commande mais non global mais sélective. Cette commande consiste a compresser un à un les dossiers.

Voici ma base qui permet la compression :
"%ProgramFiles%\7-Zip\7z.exe" a -ms=on -md=32m -mfb=64 -m0=lzma -mx=9 -mmt -m0d=128m

apres je suis obligé de spécifier chaque dossier source et le nom qui prendra à ça sortie au format 7z .

J'aimerais donc éviter d'avoir a rentrer tout les nom de mes dossiers comme ceci
"design.7z" "design"
"font.7z" "font"
"ico.7z" "ico"
etc... x100

Ici j'ai écrit entre les premiers guillemet "nom final de l archive au format 7z", les second correspond au "non du dossier cible"

Je pourrais simplement compresser le dossier source contenant tout les sous dossier (ici exemple) en utilisant la méthode global, mais cette méthode ne me permétrait pas d'apporter de nouveau dossier à celui ci et m'obligerait à tout décompresser et recompresser .

Voila donc pourquoi je souhaite trouver un SYMBOLE ou UN LIGNE DE COMMANDE CAPABLE D'INDIQUER A MON BATCH, "TU COMPRESSE TOUT LES DOSSIERS EN LEURS DONNANT LEURS NOM" .

wouaouu

Merci pour votre aide a tous.

PS: Voici mon code bat

ECHO OFF
PAUSE

"%ProgramFiles%\7-Zip\7z.exe" a -ms=on -md=32m -mfb=64 -m0=lzma -mx=9 -mmt -m0d=128m "design.7z" "design"

echo.
PAUSE

7 réponses

  1. Contributeur
    hello
    cette boucle for s'exécute pour tous les répertoires, et %%d contient le nom

    ECHO OFF
    PAUSE
    
    for /d %%d in (*.*) do  "%ProgramFiles%\7-Zip\7z.exe" a -ms=on -md=32m -mfb=64 -m0=lzma -mx=9 -mmt -m0d=128m "%%d.7z" "%%d"
    
    echo.
    PAUSE 
    
    1. C'est terrible ... :D

      E si par exemple je duplliquer un dossier et l'ou chacun d'eux porterais un base identique et une lettre(chiffre ou tout autres) différente et que je souhaiterais regrouper tout ces parties ensemble. Exemple comme ceci .

      "design.7z" "design - nature" "design - urbain" "design - etc...

      "font.7z" "font - arial" "font.7z" "font - cerif" "font.7z" "font - etc...

      etc... x100

      Cette seconde méthode regrouperait tout les éléments parenté

      un grand merci pour ton aide
      1. Contributeur
        manuellement :
        dossier\design.7z "design*.*"
        dossier\font.7z "font*.*"

        j'ai mis dossier\ pour éviter que design*.* trouve design.7z, sinon il va boucler ou faire une erreur
        1. la je voie pas trop j'ai mis cette commande mais ça marche pas :D

          ECHO OFF
          PAUSE

          "%ProgramFiles%\7-Zip\7z.exe" a -ms=on -md=32m -mfb=64 -m0=lzma -mx=9 -mmt -m0d=128m "dossier\design.7z "design*.*"

          echo.
          PAUSE
          1. Contributeur
            dossier doit exister
            il manque un "
            "dossier\design.7z" "design*.*"
            ou essayer sans "
            dossier\design.7z design*.*
            1. non marche toujours pas d'ailleurs c'est bizard parce que ça traite des images portant le nom design1.jpg et design2.jpg mais pas les dossiers design1 etdesign2 et design3 .

              je ne comprend pas pourquoi ça ne marche pas ...

              Si non y a il la possibilité de faire en sorte que ça traite de la même façon tout les éléments autre que dossier ? Car pour l'instant ce code fonctionnait seulement sur les répertoires et nom sur les autres fichiers compris dans le dossier sources .
              1. Contributeur
                utiliser l'option -r pour les sous répertoires
                tu peux essayer
                dir /b "design*.*" > liste
                7zip ... design.7z @liste
                1. wouaou, j'y pige rien... :D Tu peux m'expliquer ton code si il te plait ?
                2. Contributeur
                  dir /b "design*.*" > liste
                  on créée un fichier contenant le nom des fichiers design*.*
                  et on utilise cette liste dans 7zip avec @liste