Affecter une variable à un nom de fichier (programmation batch, cmd)
Résolu
legalerienmalin
Messages postés
5
Date d'inscription
Statut
Membre
Dernière intervention
-
legalerienmalin Messages postés 5 Date d'inscription Statut Membre Dernière intervention -
legalerienmalin Messages postés 5 Date d'inscription Statut Membre Dernière intervention -
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
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:
- Affecter une variable à un nom de fichier (programmation batch, cmd)
- Fichier bin - Guide
- Comment réduire la taille d'un fichier - Guide
- Comment ouvrir un fichier epub ? - Guide
- Cmd - Guide
- Fichier rar - Guide
2 réponses
Bonjour,
Quand tu postes du code merci d'utiliser les balises de code.
Concernant la première partie de ton script :
Elle pourrait se simplifier comme ceci :
Concernant ta boucle, il suffit d'incrémenter une variable comme ceci :
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