Affecter une variable à un nom de fichier (programmation batch, cmd)

Résolu
legalerienmalin Messages postés 5 Statut Membre -  
legalerienmalin Messages postés 5 Statut Membre -
Salut!
Mon problème est assez complexe.
Je suis en train de programmer un fichier .bat

Celui-ci doit à un moment donné créer plusieurs fichiers dans le même répertoire (dossier).
Je ne peux pas manuellement écrire des noms de dossier différents car il s'agit d'une boucle.

Problème : une fois que le programme en arrive à la création du deuxième fichier, l'invite de commande demande s'il faut remplacer le fichier.
Les 3 options de réponses sont Oui, Non et Tous. "Oui" et "tous" écrasent le premier fichier tandis que "non" annule l'action.

Je pense alors à une solution mais je n'ai aucune idée de si ça marche ou même de si c'est faisable. Je me suis dis que je pourrais inclure une variable "a" à mon programme, à laquelle j'affecte une valeur et que je met dans le nom du fichier dans la boucle.

Est-ce possible? Quelqu'un a-t-il une solution svp?
Merci beaucoup d'avance

Je vous mets la partie de mon code rééditée afin que vous n'ayez que les parties utiles s'il vous venait la folle envie de partager mon mal de crâne :)

C:
cd/
mkdir Dossier_du_faux_virus_à_supprimer
cd C:\Dossier_du_faux_virus_à_supprimer
mkdir laboratoire
mkdir stockage

:Repeat
cd C:\Dossier_du_faux_virus_à_supprimer\laboratoire
echo >faux_virus.bat
MOVE C:\Dossier_du_faux_virus_à_supprimer\laboratoire\faux_virus C:\Dossier_du_faux_virus_à_supprimer\stockage
goto :Repeat

2 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.

    Concernant la première partie de ton script :
    C:
    cd/
    mkdir Dossier_du_faux_virus_à_supprimer
    cd C:\Dossier_du_faux_virus_à_supprimer
    mkdir laboratoire
    mkdir stockage


    Elle pourrait se simplifier comme ceci :
    if not exist "C:\Dossier_du_faux_virus_à_supprimer\laboratoire" (mkdir "C:\Dossier_du_faux_virus_à_supprimer\laboratoire")
    if not exist "C:\Dossier_du_faux_virus_à_supprimer\stockage" (mkdir "C:\Dossier_du_faux_virus_à_supprimer\stockage")


    Concernant ta boucle, il suffit d'incrémenter une variable comme ceci :
    set index=0
    :Repeat
    set /a index+=1
    cd C:\Dossier_du_faux_virus_à_supprimer\laboratoire
    echo >faux_virus_%index%.bat
    MOVE C:\Dossier_du_faux_virus_à_supprimer\laboratoire\faux_virus C:\Dossier_du_faux_virus_à_supprimer\stockage
    goto :Repeat

    0
  2. legalerienmalin Messages postés 5 Statut Membre
     
    Merci beaucoup vraiment
    désolée je ne savais pas ce qu'étais une balise de code mais on ne m'y prendra pas deux fois
    encore merci
    0