Recuperation nom dossier bat

Résolu
MAXIME -  
barnabe0057 Messages postés 14329 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,

je fais suite au post de
.BAT > Récupérer chemin d'un dossier [Résolu/Fermé]
micromega - 27 nov. 2019 à 16:53
 micromega - 2 déc. 2019 à 15:08

Je n'arrive pas a cibler un repertoire particulier a part le dernier avec le code suivant :
SET RP=
SET RP=%~P0
SET RP=%RP:\= %
SET RP=%RP:~1,-1%
FOR %%A IN (%RP%) DO (SET RP=%%A)
ECHO DERNIER REPERTOIRE DU CHEMIN : %~P0%
ECHO.EST : %RP%

echo %RP%


J'aimerai pouvoir cibler un répertoire dans une cible d'accès pour intégrer ce résultat dans un nom de fichier

Je souhaiterais via un code bat créer des fichiers avec un nommage incrémentiel et avec la date.

Jusque-là pas de soucis j’ai réussi à faire ça avec des trucs venant d’internet.

La règle de nommage est la suivante :

Z_NOM DOSSIER CIBLE DANS CHEMIN ACCES_201211_10001_. EXTENSION
s:\ENTREPRISE\TKMI\01 CLIENTS\NOM CLIENT\1500\02_CONCEPTION\
Je souhaiterais que lors de la création du fichier par la commande .bat qu’il affiche en nom de fichier ceci :
Z_1500_201211_10001_.EXT
Quel code écrire pour que la commande .bat détecte le nom de dossier « 1500 » dans laquelle elle est ?
Sachant que c’est une variable qui changera suivant la ou la commande .bat sera
Je souhaiterais aussi pouvoir changer le numéro de position de ce dossier à afficher

j'ai essayer avec ce code mais sans succès
@echo off
setlocal enabledelayedexpansion

set index=0

for /f "delims=" %%A in ('2^>nul dir /b /ad') do (
 
set /a index+=1
 if !index! EQU 3 (set dossier=%%~fA)

)

echo %dossier%

pause


le code complet est :
@echo off
setlocal enabledelayedexpansion

set  index=0
set  d=%date:~6,4%
set  m=%date:~3,2%
set  j=%date:~0,2%
set  nombre=1000
set  ext=SLDPRT
set     prefixe=Z_
set sep=_

SET RP=
SET RP=%~P0
SET RP=%RP:\= %
SET RP=%RP:~1,-1%
FOR %%A IN (%RP%) DO (SET RP=%%A)
ECHO DERNIER REPERTOIRE DU CHEMIN : %~P0%
ECHO.EST : %RP%

echo %RP%

set FOLDER=%RP%

:Boucle
if not exist   %prefixe%%FOLDER%%sep%%d%%m%%j%_%nombre%_.%ext% goto Copie
set /a nombre+=+1
goto Boucle
:Copie
copy %prefixe%.%ext%  %prefixe%%FOLDER%%sep%%d%%m%%j%_%nombre%_.%ext%

Je souhaiterais metre au point la partie "folder"

D'avance Merci

EDIT : Ajout des balises de code

28 réponses

  • 1
  • 2
Résumé de la discussion

Le problème consiste à extraire le nom d'un dossier spécifique dans un chemin pour l'inclure ensuite dans un nom de fichier batch, en choisissant le niveau du dossier à cibler dans l'arborescence. Des solutions proposent de définir le chemin cible et d'utiliser une boucle FOR imbriquée avec FOR /L pour remonter le nombre de niveaux souhaité, puis de récupérer le nom du dossier courant comme variable. En pratique, on peut fixer une variable level (par exemple 2) et itérer autant de fois que nécessaire, en utilisant des manipulations de chemin et la variable parent pour obtenir le nom souhaité (exemple 1500). Note additionnelle : pour cibler d'autres niveaux, ajuster simplement la variable level et, le cas échéant, normaliser le chemin en retirant un éventuel trailing slash.

Généré automatiquement par IA
sur la base des meilleures réponses
  1. barnabe0057 Messages postés 14329 Date d'inscription   Statut Contributeur Dernière intervention   4 930
     
    Bonjour,

    Quand tu postes du code merci d'utiliser les balises de code.

    Voilà comment remonter l'arborescence pour obtenir 1500 :
    @echo off
    setlocal enableextensions enabledelayedexpansion
    
    set cible=s:\ENTREPRISE\TKMI\01 CLIENTS\NOM CLIENT\1500\02_CONCEPTION\
    set level=2
    
    if "!cible:~-1!"=="\" (set cible=!cible:~0,-1!)
    
    for /L %%E in (1,1,%level%) do (
    
    for /f "delims=" %%A in ("!cible!") do (
    
     set cible=!cible:\%%~nA=!
     set parent=%%~nA
    
    )
    
    )
    
    echo Parent = !parent!
    
    pause 
    exit

    Pour remonter plus haut il faut augmenter la variable %level%

    EDIT : Ajout du LANGAGE dans les balises de code pour avoir la coloration syntaxique

    1
  2. barnabe0057 Messages postés 14329 Date d'inscription   Statut Contributeur Dernière intervention   4 930
     
    Ok pour la cible, ce n'est pas un problème il suffit de mettre :
    set cible=%~dp0


    J'ai supprimé quelques variables qui n'avaient pas vraiment d'utilité.

    Concernant le problème de copie qui ne se fait pas, pourrais-tu rajouter un echo devant le copy, puis lancer le script et me dire ce qui s'affiche dans l'invite de commandes.
    echo copy "S:\TKMI\ressources\Z_.SLDPRT" "!file!"

    1
  3. barnabe0057 Messages postés 14329 Date d'inscription   Statut Contributeur Dernière intervention   4 930
     
    Voilà où j'en suis, dis-moi ce qui reste à améliorer :

    @echo off
    setlocal enableextensions enabledelayedexpansion
    Mode con cols=120 lines=20
    chcp 65001 >nul
    color 0A
    
    : --------------------------------------------------------------------------------------
    : on définit les variables
    : --------------------------------------------------------------------------------------
    
    set "ressources=%~dp0"
    set "prefixe=Z_"
    set level=5
    
    if /i "%~n0"=="SLDPRT" (set "mini=10000" & set "preindex=P")
    if /i "%~n0"=="SLDASM" (set "mini=20000" & set "preindex=A")
    
    : --------------------------------------------------------------------------------------
    : on vérifie si le template et son dossier existent ou pas
    : --------------------------------------------------------------------------------------
    
    cd /d %ressources% || exit /b 1
    if not exist "%prefixe%.%~n0" (exit /b 1)
    
    : --------------------------------------------------------------------------------------
    : on définit le dossier de destination
    : --------------------------------------------------------------------------------------
    
    if not "A%~1A"=="AA" (set "cible=%~1" & goto :suite)
    
    :debut
    
    set "cible="
    cls & echo. & set /p cible="### Veuillez indiquer le dossier de destination : "
    if not defined cible (goto :debut)
    if "!cible:~-1!"=="\" (set cible=!cible:~0,-1!)
    if not exist "!cible!" (goto :debut)
    
    : --------------------------------------------------------------------------------------
    : on vérifie s'il s'agit d'un lecteur réseau
    : --------------------------------------------------------------------------------------
    
    :suite
    
    for /f "tokens=1 delims=\" %%A in ("!cible!") do set "lettre=%%A"
    
    set "mappage="
    for /f "delims=" %%A in ('net use ^| find "!lettre!"') do set "mappage=%%A"
    
    : --------------------------------------------------------------------------------------
    : on récupère le chemin UNC (à partir des mappages réseaux)
    : --------------------------------------------------------------------------------------
    
    set "UNC="
    if defined mappage (for /f "tokens=3" %%A in ("!mappage!") do set "UNC=%%A")
    
    if defined UNC (
     set "chemin=!UNC!\!cible:~3!"
     if "!chemin:~-1!"=="\" (set "chemin=!chemin:~0,-1!")
     if "!lettre!"=="P:" (set level=5)
     if "!lettre!"=="Z:" (set level=5)
    ) else (set "chemin=!cible!")
    
    : --------------------------------------------------------------------------------------
    : on récupère le nom du client (via un découpage de l'arborescence)
    : --------------------------------------------------------------------------------------
    
    set "client="
    for /f "tokens=%level% delims=\" %%A in ("!chemin!") do set "client=%%A"
    if defined client (set "client=!client:~0,3!_")
    
    : --------------------------------------------------------------------------------------
    : on récupère le numéro d'affaire (via un découpage de l'arborescence)
    : --------------------------------------------------------------------------------------
    
    set /a level+=1
    for /f "tokens=%level% delims=\" %%A in ("!chemin!") do set "affaire=%%A"
    set "affaire=!affaire:~0,4!_"
    echo !affaire! | findstr /r "^[0-9][0-9][0-9][0-9]" >nul || set "affaire="
    
    : --------------------------------------------------------------------------------------
    : on confirme les informations
    : --------------------------------------------------------------------------------------
    
    cls & echo. & echo ^>^>^> Dossier contenant le template ==^>^> %ressources%
    echo. & echo ^>^>^> Dossier de destination        ==^>^> !cible!
    echo. & echo. & set /p confirm="### Appuyez sur la touche Y pour confirmer "
    if /i "%confirm%"=="Y" (echo.) else (exit /b 1)
    
    : --------------------------------------------------------------------------------------
    : on demande si on doit intégrer la date du jour dans le nom du ou des fichiers
    : --------------------------------------------------------------------------------------
    
    :question1
    set "demande="
    cls & echo. & set /p demande="### Voulez-vous intégrer la date du jour dans les noms de fichiers ? (oui par défaut) [o-n] : "
    if not defined demande (set "AAAAMMJJ=%date:~6,4%%date:~3,2%%date:~0,2%_" & goto :question2)
    if "%demande%"=="o" (set "AAAAMMJJ=%date:~6,4%%date:~3,2%%date:~0,2%_" & goto :question2)
    if "%demande%"=="n" (set "AAAAMMJJ=" & goto :question2)
    goto :question1
    
    : --------------------------------------------------------------------------------------
    : on définit la quantité de fichiers à générer 
    : --------------------------------------------------------------------------------------
    
    :question2
    set "quantite="
    echo. & set /p quantite="### Veuillez indiquer la quantité de fichier à générer ( valeur par défaut = 1) : "
    if not defined quantite (set quantite=1)
    echo.
    
    : --------------------------------------------------------------------------------------
    : on lance la procédure de génération des fichiers 
    : --------------------------------------------------------------------------------------
    
    >> %~n0.log echo.
    
    set position=1
    if defined prefixe (set /a position+=1)
    if defined client (set /a position+=1)
    if defined affaire (set /a position+=1)
    if defined AAAAMMJJ (set /a position+=1)
    
    for /L %%A in (1,1,%quantite%) do call :Boucle %position%
    
    : --------------------------------------------------------------------------------------
    : fin du script 
    : --------------------------------------------------------------------------------------
    
    echo. & echo. & pause
    exit
    
    : --------------------------------------------------------------------------------------
    : on construit le nom du fichier
    : --------------------------------------------------------------------------------------
    
    :Boucle
    
    for /f "tokens=%1 delims=_" %%A in ('2^>nul dir /b "!cible!\%prefixe%!client!!affaire!%AAAAMMJJ%%preindex%*.%~n0"') do set "string=%%A"
    set "index=!string:~1!"
    set /a index+=1
    
    if !index! LSS %mini% (set index=%mini%)
    set "index=%preindex%!index!_"
    
    set "file=%prefixe%!client!!affaire!%AAAAMMJJ%!index!.%~n0"
    
    : --------------------------------------------------------------------------------------
    : on copie le fichier dans la destination
    : --------------------------------------------------------------------------------------
    
    >nul copy "%prefixe%.%~n0" "!cible!\!file!" && call :logging "!file!"
    
    goto :eof
    
    : --------------------------------------------------------------------------------------
    : on inscrit le fichier dans le journal
    : --------------------------------------------------------------------------------------
    
    :logging
    
    echo. & echo ^>^>^> Le fichier %~1 a été créé
    
    set "heure=!time:~0,2!"
    set "heure=0!heure: =!"
    set "heure=!heure:~-2!:!time:~3,2!:!time:~6,2!"
    
    >> %~n0.log echo Le %date:~6,4%%date:~3,2%%date:~0,2% à !heure! ^>^>^> %~1
    
    goto :eof
    
    rem


    J'ai intégré la possibilité de désactiver la date, j'ai également mis en place un fichier journal basique.
    Concernant la présence ou non d'un numéro d'affaire, le script sait gérer les 2 situations (à condition que l'affaire soit toujours composé de 4 chiffres lorsqu'elle est mentionnée, et non de 3 ou de 5).

    J'ai certainement oublié des détails, la suite au prochain épisode ;)

    1
    1. maxime
       
      Bonjour Barnabé ,

      La commande fonctionne bien sauf que j'ai un soucis au niveau de la cible ...

      Lorsque je la copie colle je colle un truc comme ca :

      \\xxx.xxx.x.xx\xxxx\TKMI\1-CLIENTS\UNISENSOR\7914_CHASSIS ALU

      Ca dépend du dossier je dois savoir comment faire pour copier toujours la même cible

      que dois-je modifier dans le code pour ciblé "UNISENSOR"
      Je compte 5 level pour avoir le bon dossier mais en comptant l'ip

      Dans le cadre d'une cible réseau qu'elle est le level changer ?
      0
    2. barnabe0057 Messages postés 14329 Date d'inscription   Statut Contributeur Dernière intervention   4 930 > maxime
       
      Salut, comme dit dans un précédent message, le script ne gère pas les chemins UNC pour l'instant.
      Est-ce que je dois vraiment intégrer cela au script ?
      0
    3. maxime > barnabe0057 Messages postés 14329 Date d'inscription   Statut Contributeur Dernière intervention  
       
      Barnabé ,

      En utilisant les raccourcis sur le coté gauche de l'explorateur il y à a chaque fois l'adresse réseau.
      En passant par le lecteur du poste de travail la c'est une cible de répertoire classique .

      Je dirais donc que oui ca serait bien

      Sinon ou est ce fichier journal ?
      0
    4. barnabe0057 Messages postés 14329 Date d'inscription   Statut Contributeur Dernière intervention   4 930 > maxime
       
      Le fichier journal se trouve là où se trouvent les templates.
      0
    5. barnabe0057 Messages postés 14329 Date d'inscription   Statut Contributeur Dernière intervention   4 930 > barnabe0057 Messages postés 14329 Date d'inscription   Statut Contributeur Dernière intervention  
       
      J'ai ajouté la gestion des chemins UNC :

      @echo off
      setlocal enableextensions enabledelayedexpansion
      Mode con cols=120 lines=20
      chcp 65001 >nul
      color 0A
      
      : --------------------------------------------------------------------------------------
      : on définit les variables
      : --------------------------------------------------------------------------------------
      
      set "ressources=%~dp0"
      set "prefixe=Z_"
      set "template=%prefixe%.%~n0"
      set "level=5"                  &:: ce level est le level par défaut
      
      if /i "%~n0"=="SLDPRT" (set "mini=10000" & set "preindex=P")
      if /i "%~n0"=="SLDASM" (set "mini=20000" & set "preindex=A")
      
      : --------------------------------------------------------------------------------------
      : on vérifie si le template et son dossier existent ou pas
      : --------------------------------------------------------------------------------------
      
      pushd "%ressources%" || exit /b 1
      if not exist "%prefixe%.%~n0" (exit /b 1)
      
      : --------------------------------------------------------------------------------------
      : on définit le dossier de destination
      : --------------------------------------------------------------------------------------
      
      if not "A%~1A"=="AA" (set "cible=%~1" & goto :suite)
      
      :debut
      
      set "cible="
      cls & echo. & set /p cible="### Veuillez indiquer le dossier de destination : "
      if not defined cible (goto :debut)
      if "!cible:~-1!"=="\" (set cible=!cible:~0,-1!)
      rem if not exist "!cible!" (goto :debut)
      
      : --------------------------------------------------------------------------------------
      : on vérifie s'il s'agit d'un lecteur réseau
      : --------------------------------------------------------------------------------------
      
      :suite
      
      for /f "tokens=1 delims=\" %%A in ("!cible!") do set "lettre=%%A"
      if not "!lettre:~1,1!"==":" (set "lettre=" & set level=5)          &:: ce level concerne uniquement les chemins UNC
      
      set "mappage="
      if defined lettre (for /f "delims=" %%A in ('net use ^| find "!lettre!"') do set "mappage=%%A")
      
      : --------------------------------------------------------------------------------------
      : on récupère le chemin UNC (à partir des mappages réseaux)
      : --------------------------------------------------------------------------------------
      
      set "UNC="
      if defined mappage (for /f "tokens=3" %%A in ("!mappage!") do set "UNC=%%A")
      
      if defined UNC (
      	set "chemin=!UNC!\!cible:~3!"
      	if "!chemin:~-1!"=="\" (set "chemin=!chemin:~0,-1!")
      	if "!lettre!"=="P:" (set "level=5")
      	if "!lettre!"=="Z:" (set "level=5")
      ) else (set "chemin=!cible!")
      
      : --------------------------------------------------------------------------------------
      : on récupère le nom du client (via un découpage de l'arborescence)
      : --------------------------------------------------------------------------------------
      
      set "client="
      for /f "tokens=%level% delims=\" %%A in ("!chemin!") do set "client=%%A"
      if defined client (set "client=!client:~0,3!_")
      
      : --------------------------------------------------------------------------------------
      : on récupère le numéro d'affaire (via un découpage de l'arborescence)
      : --------------------------------------------------------------------------------------
      
      set /a level+=1
      for /f "tokens=%level% delims=\" %%A in ("!chemin!") do set "affaire=%%A"
      set "affaire=!affaire:~0,4!_"
      echo !affaire! | findstr /r "^[0-9][0-9][0-9][0-9]" >nul || set "affaire="
      
      : --------------------------------------------------------------------------------------
      : on confirme les informations
      : --------------------------------------------------------------------------------------
      
      cls & echo. & echo ^>^>^> Dossier contenant le template ==^>^> %ressources%
      echo. & echo ^>^>^> Dossier de destination        ==^>^> !cible!
      echo. & echo. & set /p confirm="### Appuyez sur la touche Y pour confirmer "
      if /i "%confirm%"=="Y" (echo.) else (exit /b 1)
      
      : --------------------------------------------------------------------------------------
      : on demande si on doit intégrer la date du jour dans le nom du ou des fichiers
      : --------------------------------------------------------------------------------------
      
      :question1
      set "demande="
      cls & echo. & set /p demande="### Voulez-vous intégrer la date du jour dans les noms de fichiers ? (oui par défaut) [o-n] : "
      if not defined demande (set "AAAAMMJJ=%date:~6,4%%date:~3,2%%date:~0,2%_" & goto :question2)
      if "%demande%"=="o" (set "AAAAMMJJ=%date:~6,4%%date:~3,2%%date:~0,2%_" & goto :question2)
      if "%demande%"=="n" (set "AAAAMMJJ=" & goto :question2)
      goto :question1
      
      : --------------------------------------------------------------------------------------
      : on définit la quantité de fichiers à générer 
      : --------------------------------------------------------------------------------------
      
      :question2
      set "quantite="
      echo. & set /p quantite="### Veuillez indiquer la quantité de fichier à générer ( valeur par défaut = 1) : "
      if not defined quantite (set quantite=1)
      echo.
      
      : --------------------------------------------------------------------------------------
      : on lance la procédure de génération des fichiers 
      : --------------------------------------------------------------------------------------
      
      >> %~n0.log echo.
      
      set position=1
      if defined prefixe (set /a position+=1)
      if defined client (set /a position+=1)
      if defined affaire (set /a position+=1)
      if defined AAAAMMJJ (set /a position+=1)
      
      for /L %%A in (1,1,%quantite%) do call :Boucle %position%
      
      : --------------------------------------------------------------------------------------
      : fin du script 
      : --------------------------------------------------------------------------------------
      
      if exist "%TMP%\%template%" (del /f "%TMP%\%template%")
      echo. & echo. & pause
      exit
      
      : --------------------------------------------------------------------------------------
      : on construit le nom du fichier
      : --------------------------------------------------------------------------------------
      
      :Boucle
      
      for /f "tokens=%1 delims=_" %%A in ('2^>nul dir /b /on "!cible!\%prefixe%!client!!affaire!%AAAAMMJJ%%preindex%*.%~n0"') do set "string=%%A"
      set "index=!string:~1!"
      set /a index+=1
      
      if !index! LSS %mini% (set index=%mini%)
      set "index=%preindex%!index!_"
      
      set "file=%prefixe%!client!!affaire!%AAAAMMJJ%!index!.%~n0"
      
      : --------------------------------------------------------------------------------------
      : on copie le fichier dans la destination
      : --------------------------------------------------------------------------------------
      
      if not exist "%TMP%\%template%" (>nul robocopy "!CD!" "%TMP%" "%template%")
      
      >nul copy /y "%TMP%\%template%" "%TMP%\!file!"
      >nul robocopy "%TMP%" "!cible!" "!file!"
      
      if exist "%TMP%\!file!" (del /f "%TMP%\!file!")
      
      call :logging "!file!"
      
      goto :eof
      
      : --------------------------------------------------------------------------------------
      : on inscrit le fichier dans le journal
      : --------------------------------------------------------------------------------------
      
      :logging
      
      echo. & echo ^>^>^> Le fichier %~1 a été créé
      
      set "heure=!time:~0,2!"
      set "heure=0!heure: =!"
      set "heure=!heure:~-2!:!time:~3,2!:!time:~6,2!"
      
      >> %~n0.log echo Le %date:~6,4%%date:~3,2%%date:~0,2% à !heure! ^>^>^> %~1
      
      goto :eof
      
      rem
      0
  4. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  5. barnabe0057 Messages postés 14329 Date d'inscription   Statut Contributeur Dernière intervention   4 930
     
    Si tu veux une interface plus visuelle, il suffit d'utiliser quelques commandes externes prévues à cet effet.

    Grâce à ces commandes, j'ai créé une version un peu plus "fenêtrée" qui ressemble plus à Windows.

    Le code est trop long pour être posté tel quel sur le forum, donc je l'ai mis sur mon Pastebin :
    https://pastebin.com/2GrBJZmJ

    Tu me diras ce que tu en penses.

    1
  6. maxime
     
    Bonjour barnabé ,

    excuses moi pour le retard de réponse .
    J'ai bien recu le code .

    Tout fonctionne super bien je ne passe plus que pas ca pour créer les fichier et c'est vraiment super

    Merci
    1
    1. barnabe0057 Messages postés 14329 Date d'inscription   Statut Contributeur Dernière intervention   4 930
       
      0
  7. MAXIME
     
    C'est super merci ca fonctionne au top !

    Un tout grand merci

    Est ce que toute fois on peut à la place d'une cible fixe encoder manuellement , intégrer dans cet variable la récupération de la cible complète ou ce trouve le ficher .bat ?

    D'avance Merci
    0
    1. barnabe0057 Messages postés 14329 Date d'inscription   Statut Contributeur Dernière intervention   4 930
       
      Oui bien sûr :

      @echo off
      setlocal enableextensions enabledelayedexpansion
      
      set cible=%~dp0
      set level=2
      
      if "!cible:~-1!"=="\" (set cible=!cible:~0,-1!)
      
      for /L %%E in (1,1,%level%) do (
      
      for /f "delims=" %%A in ("!cible!") do (
      
       set cible=!cible:\%%~nA=!
       set parent=%%~nA
      
      )
      
      )
      
      echo Parent = !parent!
      
      pause 
      exit
      

      EDIT : Ajout du LANGAGE dans les balises de code pour avoir la coloration syntaxique
      0
      1. MAXIME > barnabe0057 Messages postés 14329 Date d'inscription   Statut Contributeur Dernière intervention  
         
        Je souhaiterais ne prendre que les 3 ou 4 premier caractère de ce résultat "dossier ciblé"

        une fonction cut ou gauche peut etre ?
        0
      2. barnabe0057 Messages postés 14329 Date d'inscription   Statut Contributeur Dernière intervention   4 930 > MAXIME
         
        Pour découper une variable :
        set parent=!parent:~0,4! 
        0
      3. MAXIME > barnabe0057 Messages postés 14329 Date d'inscription   Statut Contributeur Dernière intervention  
         
        Je m'excuse mais je ne vois pas ou mettre ca ... cela ne fonctionne pas sur mon code

        je ne vois pas comment mettre les balises aussi

        @echo off
        setlocal enableextensions enabledelayedexpansion

        set index=0
        set d=%date:~6,2%
        set m=%date:~3,2%
        set j=%date:~0,2%
        set nombre=1000
        set ext=SLDPRT
        set prefixe=Z_
        set sep=_
        set cible=%~dp0
        set level=2

        if "!cible:~-1!"=="\" (set cible=!cible:~0,-1!)
        for /L %%E in (1,1,%level%) do (
        for /f "delims=" %%A in ("!cible!") do (

        set cible=!cible:\%%~nA=!
        set parent=%%~nA
        )
        )

        echo Parent = !parent!

        set parent=!parent:~0,4!

        set FOLDER=%parent%

        :Boucle
        if not exist %prefixe%%FOLDER%%sep%%d%%m%%j%_%nombre%_.%ext% goto Copie
        set /a nombre+=+1
        goto Boucle
        :Copie
        copy %prefixe%.%ext% %prefixe%%FOLDER%%sep%%d%%m%%j%_%nombre%_.%ext%
        0
  8. MAXIME
     
    Super encore une fois c'est top !

    Je ne sais pas si ma nouvelle demande à encore sa place sur ce post / sujet ?

    je souhaiterais savoir si le fichier copié selon la nouvelle règle de nommage peut se trouver a un endroit diffèrent que la commande .bat ?

    Une idée ?
    -1
    1. barnabe0057 Messages postés 14329 Date d'inscription   Statut Contributeur Dernière intervention   4 930
       
      Je ne comprends pas très bien, donne un exemple stp.
      0
  9. MAXIME
     
    Bonjour ,

    L'idée de cette commande .bat est de créer des fichier avec un nommage particulier a partir de fichier "templates"

    Je souhaiterais que les fichiers sources soient stockés a un endroit mais que la commande bat peut importe ou elle se trouve aille chercher les fichiers "templates" en question

    Z_.sldprt (s:TKMI\ressources)
    Creation_prt.bat (s:TKMI\01_CLIENTS\ERM\1250\)

    Pour que simplement je n'ai qu'a copier coller le ficher bat sans me soucié des fichiers "templates"

    Voila j'espère avoir été clair dans ma demande
    0
    1. barnabe0057 Messages postés 14329 Date d'inscription   Statut Contributeur Dernière intervention   4 930
       
      Ton script pourrait se résumer ainsi :
      @echo off
      setlocal enableextensions enabledelayedexpansion
      
      set nombre=1000
      set cible=S:\ENTREPRISE\TKMI\01 CLIENTS\NOM CLIENT\1500\02_CONCEPTION\
      
      cd /d %cible% || exit /b 1
      
      if "!cible:~-1!"=="\" (set cible=!cible:~0,-1!)
      
      :remonter
      
      for /f "delims=" %%A in ("!cible!") do (
      
       set cible=!cible:\%%~nA=!
       set FOLDER=%%~nA
      
      )
      
      
      cls & echo Dossier = !FOLDER!
      
      set FOLDER=!FOLDER:~0,4!
      
      echo.!FOLDER! | findstr /r "^[0-9][0-9][0-9][0-9]" >nul || goto :remonter
      
      :Boucle
      
      set file=Z_!FOLDER!_%date:~6,4%%date:~3,2%%date:~0,2%_!nombre!_.SLDPRT
      if exist "!file!" (set /a nombre+=1 & goto :Boucle)
      
      copy "S:\TKMI\ressources\Z_.SLDPRT" "!file!"
      
      pause 
      exit
      0
  10. MAXIME
     
    Merci Barnabé, mais la cible change a chaque fois que je copie la commande .bat et donc je ne la connais pas à l'avance

    Je vois que le code que tu me propose est nettement plus épuré que l'initial .

    En tant que novice j'ai un peu de mal a m'y retrouvé

    avec le nouveau code ça ne copie plus les fichiers.
    L'invite de commande affiche le dossier ciblé uniquement sans copies
    0
  11. MAXIME
     
    Bonsoir Barnabé ,

    Je m'aperçois que ma demande n'est pas aussi structurée qu'elle devrait l'être .
    Je m'excuses

    Je corrige donc celle ci .

    Je souhaiterais pour celle ci :

    - que la commande bat soit unique et non a copier un peu partout dans le réseau
    (de plus je pourrais l'intégrer facilement au menu contextuel)
    - les fichiers templates quand a eux peuvent être au même endroit que la commande bat (ressources)
    - que les variables "set" soient si possible l'une a la suite des autres (facilité de lecture pour une personne novice)
    - que lors de l'ouverture de l'invite de commande je copie/colle la cible ou j'ai envie de copier par le bat les fichiers avec la règle de nommage

    (qqch de conversationnel qui me demande ou je veux copier les fichier)

    Je crois que c'est le mieux plutôt que de copier plein de fichier cmd partout

    Le type de fichier est vraiment multiple donc si je duplique les cmd bat, le simple nom de celle ci pourrait servir pour l'extension du fichier copié (j'espère que c'est assez clair sur ce point)

    - pouvoir ciblé le début ou un dossier en particulier dans une cible de répertoire
    - afficher la date dans le nom du fichier sur le format AAMMJJ / YYMMDD
    - mettre un numéro incrémentiel
    - pour l'extension du fichier copié que celle si soit une variable idéalement le nom du fichier bat

    exemple :

    SLDPRT.BAT ----> Z_ERM_201220_1001_.SLDPRT
    SLDASM.BAT ----> Z_ERM_201220_1001_.SLDASM
    0 1 2 3 4

    Chaque élément entre deux underscore est une variable en particulier .

    0 = préfixe
    1 = 3 premières lettre du dossier ciblé ou dossier ciblé (en esperant que c'est possible)
    2= date de création selon format AAMMJJ
    3= numéro incrémentiel à 4 digit (possibilité d'étendre à 5)
    4= extension du fichier copié

    Voila j'espère c'est plus clair

    D'avance merci

    je vais prendre en compte ta demande pour mettre les balises lors de différent copié coller

    Bonne soirée

    Max
    0
    1. barnabe0057 Messages postés 14329 Date d'inscription   Statut Contributeur Dernière intervention   4 930
       
      Les besoins sont déjà un peu plus clairs, je vais voir ce que je peux faire.

      Un point à éclaircir : - pouvoir ciblé le début ou un dossier en particulier dans une cible de répertoire
      Ce matin il s'agissait de récupérer un numéro à 4 chiffres, maintenant j'ai du mal à comprendre ce qu'il faut récupérer. Je comprends qu'il faut récupérer les 3 premières lettres, mais comment tu détermines que c'est précisément ce dossier là et pas son sous-dossier ou bien son dossier parent ?
      0
  12. MAXIME
     
    L'arborescence est fixe jusqu'au nom du client :

    s:entreprise\tkmi\01_clients\ERM\1431\02_conception\
    1 2 3 4 5 6

    L'élément 4 est celui qui sera ciblé il arrivera que le nom de ce dossier soit de 2 caractère minimum (dans ce cas on afficherait la totalité du nom du dossier) et quand il fait plus de 4 caractères on afficherait que les 3 première lettres du nom du dossier ciblé

    L'élément 1 , 2 et 3 sont quant à eux fixe et le client (dossier ciblé) sera toujours en 4eme position dans la cible
    0
    1. barnabe0057 Messages postés 14329 Date d'inscription   Statut Contributeur Dernière intervention   4 930
       
      Ok, autre question : est-ce qu'il y a un seul fichier template à créer/copier dans la cible ou bien il s'agit de plusieurs fichiers ?
      0
  13. MAXIME
     
    Il y a un ficher piece et un fichier assemblage

    SLDPRT
    SLDASM

    Cette règle de nommage et de création de fichier sera valable pour encore plein d'extension différente d'où la modification simple

    Lors d'un assemblage il est possible de créer n pièce

    Donc je pense que un paramètre du nombre de création serait interessant pour les pièces comme les assemblage

    Par défaut on pourrait mettre 1 mais on peut faire qqch ou c'est une variable que l'on demande lors de la création

    donc oui plusieurs fichiers
    0
    1. barnabe0057 Messages postés 14329 Date d'inscription   Statut Contributeur Dernière intervention   4 930
       
      Je vais voir par la suite pour le paramètre du nombre de création.

      Pour l'instant dis-moi si ça va dans la bonne direction ou pas :
      @echo off
      setlocal enableextensions enabledelayedexpansion
      Mode con cols=120 lines=20
      chcp 28591 >nul
      color 0A
      
      : --------------------------------------------------------------------------------------
      : on définit les variables
      : --------------------------------------------------------------------------------------
      
      set "ressources=%~dp0"
      set "nombre=100000"
      set "AAMMJJ=%date:~6,4%%date:~3,2%%date:~0,2%"
      set "prefixe=Z_"
      
      : --------------------------------------------------------------------------------------
      : on vérifie si le template et son dossier existent ou pas
      : --------------------------------------------------------------------------------------
      
      cd /d %ressources% || exit /b 1
      if not exist "%prefixe%.%~n0" (exit /b 1)
      
      : --------------------------------------------------------------------------------------
      : on définit le dossier de destination
      : --------------------------------------------------------------------------------------
      
      if not "A%~1A"=="AA" (set "cible=%~1" & goto :suite)
      
      :debut
      
      set "cible="
      cls & echo. & set /p cible="### Veuillez indiquer le dossier de destination : "
      if not defined cible (goto :debut)
      if "!cible:~-1!"=="\" (set cible=!cible:~0,-1!)
      if not exist "!cible!" (goto :debut)
      
      : --------------------------------------------------------------------------------------
      : on récupère le nom du client
      : --------------------------------------------------------------------------------------
      
      :suite
      
      for /f "tokens=5,* delims=\" %%A in ("!cible!") do set "client=%%A"
      set "client=!client:~0,3!"
      
      : --------------------------------------------------------------------------------------
      : on confirme les informations
      : --------------------------------------------------------------------------------------
      
      cls & echo. & echo ^>^>^> Dossier contenant le template ==^>^> %ressources%
      echo. & echo ^>^>^> Dossier de destination        ==^>^> !cible!
      echo. & set /p confirm="### Appuyez sur la touche Y pour confirmer "
      if not "%confirm%"=="Y" (exit /b 1) else (echo.)
      
      : --------------------------------------------------------------------------------------
      : on construit le nom du fichier
      : --------------------------------------------------------------------------------------
      
      :Boucle
      
      if !nombre! GEQ 109999 (set index=!nombre:~1!) else (set index=!nombre:~2!)
       
      set "file=%prefixe%!client!_%AAMMJJ%_!index!_.%~n0"
      
      if exist "!cible!\!file!" (set /a nombre+=1 & goto :Boucle)
      
      : --------------------------------------------------------------------------------------
      : on copie le fichier dans la destination
      : --------------------------------------------------------------------------------------
      
      >nul copy "%ressources%\%prefixe%.%~n0" "!cible!\!file!"
      echo. & echo ^>^>^> Le fichier !file! a été créé
      echo. & pause
      exit


      Il y a 2 manières d'indiquer le dossier de destination, soit en exécutant le script puis en tapant le nom, soit en faisant un glisser-déposer du dossier sur le fichier .bat
      0
      1. barnabe0057 Messages postés 14329 Date d'inscription   Statut Contributeur Dernière intervention   4 930 > barnabe0057 Messages postés 14329 Date d'inscription   Statut Contributeur Dernière intervention  
         
        Le script doit obligatoirement être placé dans le dossier contenant les templates.
        0
  14. MAXIME
     
    J'essaye ca demain matin sans faute .

    Pour renseigner le dossier de destination dans l'invite de commande on ne peut pas faire un copier coller ?

    J'aime bcp l'idée sur glisser déposer mais je préfère dans le sens inverse

    de la commande vers le dossier et non l'inverse

    Je prend connaissance du code proposé en detail demain matin

    Merci
    0
    1. barnabe0057 Messages postés 14329 Date d'inscription   Statut Contributeur Dernière intervention   4 930
       
      Le copier-coller fonctionne également.

      Bonne nuit.
      0
  15. maxime
     
    Bonjour Barnabé ,

    Le code est super bien fait , en plus c'est expliquer avec commentaire c'est top .

    Je pense qu'il subsiste une erreur sur la confirmation avec la touche "Y" car cela ne fonctionne pas

    Est-il possible de remplacer par "ENTREE" ?

    Je pense que tout fonctionne à l'exception de la confirmation
    0
  16. maxime
     
    J'ai réussi ,

    Ca fonctionne !

    un tout grand merci
    0
  17. maxime
     
    J'aurais une dernière demande ca serait d'avoir pour les SLDPRT avec un chiffre incrémental de 10000 et les fichier SLDASM 20000

    Je ne souhaiterais pas avoir un nom de fichier assemblage identique a celui d'une pièce

    Il est assez simple d'exécuter la commande mais nous avions parler de la quantité de fichiers à générer par une variable ?

    C'est facile à ajouter selon toi ?

    je pense a qqch comme ca pour le debut mais par la suite comment répéter la copie je ne sais pas tout en gardant l'incrémentiel

    : --------------------------------------------------------------------------------------
    : on definit la quantité de fichiers à générer
    : --------------------------------------------------------------------------------------

    set "quantité="
    cls & echo. & set /p quantité="### Veuillez indiquer la quantité de fichier à générer : "



    Belle journée

    Max
    0
    1. barnabe0057 Messages postés 14329 Date d'inscription   Statut Contributeur Dernière intervention   4 930
       
      Salut, voilà le script final :

      @echo off
      setlocal enableextensions enabledelayedexpansion
      Mode con cols=120 lines=20
      chcp 28591 >nul
      color 0A
      
      : --------------------------------------------------------------------------------------
      : on définit les variables
      : --------------------------------------------------------------------------------------
      
      set "ressources=%~dp0"
      set "AAMMJJ=%date:~6,4%%date:~3,2%%date:~0,2%"
      set "prefixe=Z_"
      if "%~n0"=="SLDPRT" (set "nombre=10000")
      if "%~n0"=="SLDASM" (set "nombre=20000")
      
      : --------------------------------------------------------------------------------------
      : on vérifie si le template et son dossier existent ou pas
      : --------------------------------------------------------------------------------------
      
      cd /d %ressources% || exit /b 1
      if not exist "%prefixe%.%~n0" (exit /b 1)
      
      : --------------------------------------------------------------------------------------
      : on définit le dossier de destination
      : --------------------------------------------------------------------------------------
      
      if not "A%~1A"=="AA" (set "cible=%~1" & goto :suite)
      
      :debut
      
      set "cible="
      cls & echo. & set /p cible="### Veuillez indiquer le dossier de destination : "
      if not defined cible (goto :debut)
      if "!cible:~-1!"=="\" (set cible=!cible:~0,-1!)
      if not exist "!cible!" (goto :debut)
      
      : --------------------------------------------------------------------------------------
      : on récupère le nom du client
      : --------------------------------------------------------------------------------------
      
      :suite
      
      for /f "tokens=5,* delims=\" %%A in ("!cible!") do set "client=%%A"
      set "client=!client:~0,3!"
      
      : --------------------------------------------------------------------------------------
      : on confirme les informations
      : --------------------------------------------------------------------------------------
      
      cls & echo. & echo ^>^>^> Dossier contenant le template ==^>^> %ressources%
      echo. & echo ^>^>^> Dossier de destination        ==^>^> !cible!
      echo. & set /p confirm="### Appuyez sur la touche Y pour confirmer "
      if /i "%confirm%"=="Y" (echo.) else (exit /b 1)
      
      : --------------------------------------------------------------------------------------
      : on definit la quantité de fichiers à générer 
      : --------------------------------------------------------------------------------------
      
      set "quantite="
      cls & echo. & set /p quantite="### Veuillez indiquer la quantité de fichier à générer : "
      if not defined quantite (set quantite=1)
      echo.
      
      : --------------------------------------------------------------------------------------
      : on lance la procédure de génération des fichiers 
      : --------------------------------------------------------------------------------------
      
      for /L %%A in (1,1,%quantite%) do call :Boucle
      
      : --------------------------------------------------------------------------------------
      : fin du script 
      : --------------------------------------------------------------------------------------
      
      echo. & echo. & pause
      exit
      
      : --------------------------------------------------------------------------------------
      : on construit le nom du fichier
      : --------------------------------------------------------------------------------------
      
      :Boucle
      
      set "file=%prefixe%!client!_%AAMMJJ%_!nombre!_.%~n0"
      if exist "!cible!\!file!" (set /a nombre+=1 & goto :Boucle)
      
      : --------------------------------------------------------------------------------------
      : on copie le fichier dans la destination
      : --------------------------------------------------------------------------------------
      
      >nul copy "%prefixe%.%~n0" "!cible!\!file!" && (echo. & echo ^>^>^> Le fichier !file! a été créé)
      
      goto :eof
      
      0
  18. maxime
     
    Barnabé ,

    J'ai un soucis sur la cible de départ ...
    Il y a des lecteurs montés suivant les dossiers que l'on utilise.

    La cible est donc avec la lettre du lecteur donc pas complète suivant le lecteur par lequel on ouvre le dossier :

    exemple :

    dossier ressource : R:\

    reseau entreprise : S:\TKMI\1-CLIENTS

    client : Z:\

    Ma question est la suivante .

    est il possible de copier coller la cible avec l'adresse réseau et non l'adresse ordinateur ?
    Je t'avoue que je ne sais pas vraiment comment la récupérer

    Cela implique que le dossier ciblé suivant comment on l'ouvre n'est pas correctement ciblé puisque ca change

    Je pense que je vais devoir utiliser des raccourcis plutôt que des lecteurs bien définis j'ai l'impression
    0
    1. barnabe0057 Messages postés 14329 Date d'inscription   Statut Contributeur Dernière intervention   4 930
       
      Ca ne devrait pas être un problème, je vais voir ce que je peux faire.
      0
  19. maxime
     
    L'idéal serait de ciblé le 1er dossier après la lettre du lecteur et le \

    Cela impose à l'utilisateur de copier la cible toujours a partir du meme dossier

    Mais c'est une bonne solution je pense

    Il me semble que le paramètre de comptage du dossier par de la droite nn ?
    0
    1. barnabe0057 Messages postés 14329 Date d'inscription   Statut Contributeur Dernière intervention   4 930
       
      Je te laisse tester cette proposition :

      @echo off
      setlocal enableextensions enabledelayedexpansion
      Mode con cols=120 lines=20
      chcp 28591 >nul
      color 0A
      
      : --------------------------------------------------------------------------------------
      : on définit les variables
      : --------------------------------------------------------------------------------------
      
      set "ressources=%~dp0"
      set "AAMMJJ=%date:~6,4%%date:~3,2%%date:~0,2%"
      set "prefixe=Z_"
      set level=5
      if "%~n0"=="SLDPRT" (set "nombre=10000")
      if "%~n0"=="SLDASM" (set "nombre=20000")
      
      : --------------------------------------------------------------------------------------
      : on vérifie si le template et son dossier existent ou pas
      : --------------------------------------------------------------------------------------
      
      cd /d %ressources% || exit /b 1
      if not exist "%prefixe%.%~n0" (exit /b 1)
      
      : --------------------------------------------------------------------------------------
      : on définit le dossier de destination
      : --------------------------------------------------------------------------------------
      
      if not "A%~1A"=="AA" (set "cible=%~1" & goto :suite)
      
      :debut
      
      set "cible="
      cls & echo. & set /p cible="### Veuillez indiquer le dossier de destination : "
      if not defined cible (goto :debut)
      if "!cible:~-1!"=="\" (set cible=!cible:~0,-1!)
      if not exist "!cible!" (goto :debut)
      
      : --------------------------------------------------------------------------------------
      : on vérifie s'il s'agit d'un lecteur réseau
      : --------------------------------------------------------------------------------------
      
      :suite
      
      for /f "tokens=1 delims=\" %%A in ("!cible!") do set "lettre=%%A"
      
      set "mappage="
      for /f "delims=" %%A in ('net use ^| find "!lettre!"') do set "mappage=%%A"
      
      : --------------------------------------------------------------------------------------
      : on récupère le chemin UNC (à partir des mappages réseaux)
      : --------------------------------------------------------------------------------------
      
      set "UNC="
      if defined mappage (for /f "tokens=3" %%A in ("!mappage!") do set "UNC=%%A")
      
      if defined UNC (
      	set "chemin=!UNC!\!cible:~3!"
      	if "!chemin:~-1!"=="\" (set "chemin=!chemin:~0,-1!")
      	if "!lettre!"=="S:" (set level=5)
      	if "!lettre!"=="Z:" (set level=2)
      ) else (set "chemin=!cible!")
      
      : --------------------------------------------------------------------------------------
      : on récupère le nom du client (grâce à un découpage de l'arborescence)
      : --------------------------------------------------------------------------------------
      
      for /f "tokens=%level% delims=\" %%A in ("!chemin!") do set "client=%%A"
      set "client=!client:~0,3!"
      
      : --------------------------------------------------------------------------------------
      : on confirme les informations
      : --------------------------------------------------------------------------------------
      
      cls & echo. & echo ^>^>^> Dossier contenant le template ==^>^> %ressources%
      echo. & echo ^>^>^> Dossier de destination        ==^>^> !cible!
      echo. & set /p confirm="### Appuyez sur la touche Y pour confirmer "
      if /i "%confirm%"=="Y" (echo.) else (exit /b 1)
      
      : --------------------------------------------------------------------------------------
      : on definit la quantité de fichiers à générer 
      : --------------------------------------------------------------------------------------
      
      set "quantite="
      cls & echo. & set /p quantite="### Veuillez indiquer la quantité de fichier à générer : "
      if not defined quantite (set quantite=1)
      echo.
      
      : --------------------------------------------------------------------------------------
      : on lance la procédure de génération des fichiers 
      : --------------------------------------------------------------------------------------
      
      for /L %%A in (1,1,%quantite%) do call :Boucle
      
      : --------------------------------------------------------------------------------------
      : fin du script 
      : --------------------------------------------------------------------------------------
      
      echo. & echo. & pause
      explorer /select,"!cible!"
      exit
      
      : --------------------------------------------------------------------------------------
      : on construit le nom du fichier
      : --------------------------------------------------------------------------------------
      
      :Boucle
      
      set "file=%prefixe%!client!_%AAMMJJ%_!nombre!_.%~n0"
      if exist "!cible!\!file!" (set /a nombre+=1 & goto :Boucle)
      
      : --------------------------------------------------------------------------------------
      : on copie le fichier dans la destination
      : --------------------------------------------------------------------------------------
      
      >nul copy "%prefixe%.%~n0" "!cible!\!file!" && (echo. & echo ^>^>^> Le fichier !file! a été créé)
      
      goto :eof
      
      rem
      0
    2. MAXIME > barnabe0057 Messages postés 14329 Date d'inscription   Statut Contributeur Dernière intervention  
       
      Un grand merci ,

      L'informaticien n'est je pense pas fan des commandes bat mais en plus avec de la reconnaissance réseau je sais pas si ca va bien lui plaire ...

      Enfin je lui en parlerais pas direct ...

      Je teste demain et je t'envoi le contenu de la commande net use

      Bonne soirée
      0
    3. barnabe0057 Messages postés 14329 Date d'inscription   Statut Contributeur Dernière intervention   4 930 > MAXIME
       
      De la reconnaissance réseau, c'est un bien grand mot.
      Je vérifie simplement, d'après la lettre de lecteur, s'il s'agit d'un lecteur réseau ou bien local.

      En y réfléchissant un peu plus, je n'ai pas besoin de connaître les mappages dans NET USE, j'ai réussi à avancer quand même.

      J'aimerais bien savoir pourquoi l'informaticien n'est pas fan des commandes batch.
      A mon avis : soit il n'y comprend que dalle soit il pense que le batch est obsolète.

      Le script n'accepte pas les chemins UNC, il accepte les lecteurs locaux et réseaux, mais suivant la position du nom du client dans l'arborescence il faudra peut-être adapter la valeur de la variable %level%

      Actuellement :

      - si on indique un chemin local : le script va récupérer le 5ème dossier en partant de la gauche

      - si on indique un chemin commençant par S:\ le script va récupérer le 5ème dossier en partant de la gauche, en se basant sur le chemin UNC ( \\nom du serveur\nom du partage )

      - si on indique un chemin commençant par Z:\ le script va récupérer le 2ème dossier en partant de la gauche, en se basant sur le chemin UNC ( \\nom du serveur\nom du partage )
      0
    4. MAXIME > barnabe0057 Messages postés 14329 Date d'inscription   Statut Contributeur Dernière intervention  
       
      un veritable crack !

      tu gères

      Bien à toi
      0
    5. maxime > barnabe0057 Messages postés 14329 Date d'inscription   Statut Contributeur Dernière intervention  
       
      Bonjour Barnabé ,

      Tout fonctionne super bien .

      Le level pour le ciblage du dossier client est 5 pour les deux lecteurs (voila ce que j'ai changé)

      Par contre pour les accent le système ne reconnait pas le caractère dans l'invite de commande .
      Un détail

      J'ai intégré un bouton au menu contextuel avec un petit logiciel un bel icon et tout fonctionne super

      un très grand merci pour ton service
      0
  20. maxime
     
    Je dois encore réfléchir aux critères dont j'ai besoin pour être clair

    Mon artiste de chef à fait évoluer la règle de nommage sans trop d'analyse
    Je me dois donc de faire celle ci

    je reviens vers toi
    0
  • 1
  • 2