Affecter une variable à un nom de fichier (programmation batch, cmd) [Résolu]

Signaler
Messages postés
5
Date d'inscription
samedi 3 avril 2021
Statut
Membre
Dernière intervention
3 avril 2021
-
Messages postés
5
Date d'inscription
samedi 3 avril 2021
Statut
Membre
Dernière intervention
3 avril 2021
-
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

Messages postés
13372
Date d'inscription
lundi 2 mars 2009
Statut
Contributeur
Dernière intervention
9 avril 2021
4 281
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

Messages postés
5
Date d'inscription
samedi 3 avril 2021
Statut
Membre
Dernière intervention
3 avril 2021

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