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

Résolu/Fermé
legalerienmalin Messages postés 5 Date d'inscription samedi 3 avril 2021 Statut Membre Dernière intervention 3 avril 2021 - 3 avril 2021 à 19:06
legalerienmalin Messages postés 5 Date d'inscription samedi 3 avril 2021 Statut Membre Dernière intervention 3 avril 2021 - 3 avril 2021 à 20:06
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
A voir également:

2 réponses

barnabe0057 Messages postés 14454 Date d'inscription lundi 2 mars 2009 Statut Contributeur Dernière intervention 30 novembre 2024 4 918
3 avril 2021 à 19:50
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
legalerienmalin Messages postés 5 Date d'inscription samedi 3 avril 2021 Statut Membre Dernière intervention 3 avril 2021
3 avril 2021 à 20:06
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