[Batch] Peut on avoir 1variable a nom dynamik
tom
-
dragondark Messages postés 465 Date d'inscription Statut Membre Dernière intervention -
dragondark Messages postés 465 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je développe un petit script en batch, et pour pouvoir faire ce que je voudrais j'ai besoin d'une variable a nom dynamique.
Je m'explique.
J'ai un fichier avec x noms. Je veux compter les occurrences de chaque noms. Et pour me faciliter la vie je voudrais faire :
-> je rencontre le nom "toto"
-> je créer la variable "toto"
-> je set la variable à 1
-> je le rencontre une deuxième fois, je l'incrémente.
Cependant, comment créer la variable toto, puisque je ne dispose pas de son nom (puisqu'il depend des noms du fichier)
Est ce possible ? Je vous remercie
Je développe un petit script en batch, et pour pouvoir faire ce que je voudrais j'ai besoin d'une variable a nom dynamique.
Je m'explique.
J'ai un fichier avec x noms. Je veux compter les occurrences de chaque noms. Et pour me faciliter la vie je voudrais faire :
-> je rencontre le nom "toto"
-> je créer la variable "toto"
-> je set la variable à 1
-> je le rencontre une deuxième fois, je l'incrémente.
Cependant, comment créer la variable toto, puisque je ne dispose pas de son nom (puisqu'il depend des noms du fichier)
Est ce possible ? Je vous remercie
A voir également:
- [Batch] Peut on avoir 1variable a nom dynamik
- Fichier batch - Guide
- Nom de l'adresse - Forum Jeux vidéo
- Annuaire portable gratuit a partir d'un nom ✓ - Forum Mobile
- Nom de compte steam exemple - Forum Jeux vidéo
- Changer nom iphone - Guide
5 réponses
Récupérer le résultat d'une commande en tant que variable
Imaginons que nous souhaitons récupérer le nom du dernier fichier sans son extension et de nous en servir comme d'une variable, nous pouvons nous inspirer de ce script :
@echo off
for /f %%a in ('dir /b /od /a-d *.*') do set variable=%%~na
echo Le nom du dernier fichier est : %variable%
Le principe du script consiste à récupérer la dernière ligne affichée par la commande "Dir" et de transformer cette ligne en une variable. Pour ce faire, seule le nom du fichier seul est extrait (%~na).
extrait : http://www.hotline-pc.org/batch.htm
Cordialement
Dragondark de lonlindil
Imaginons que nous souhaitons récupérer le nom du dernier fichier sans son extension et de nous en servir comme d'une variable, nous pouvons nous inspirer de ce script :
@echo off
for /f %%a in ('dir /b /od /a-d *.*') do set variable=%%~na
echo Le nom du dernier fichier est : %variable%
Le principe du script consiste à récupérer la dernière ligne affichée par la commande "Dir" et de transformer cette ligne en une variable. Pour ce faire, seule le nom du fichier seul est extrait (%~na).
extrait : http://www.hotline-pc.org/batch.htm
Cordialement
Dragondark de lonlindil
oui mais dans ce cas , c'est nous même qui donnons un nom a cette variable puisqu'elle s'appel justement %variable% .
moi je voudrais que la valeur inscrite dans %%a devienne une variable qui ait pour nom "nom_valeur_a "
moi je voudrais que la valeur inscrite dans %%a devienne une variable qui ait pour nom "nom_valeur_a "
hello
quelque chose comme ça ?
quelque chose comme ça ?
C:> set a=z1 C:> set %a%=1 C:> set z1 z1=1 C:> set /a %a%+=1 2 C:> set /a %a%+=1 3 C:> set z1 z1=3
non.
Par exemple :
Dans monfichier.txt est inscrit : Dupond Dupont
Dans mon fichier bat je voudrais :
FOR /F "tokens=1,1 delims= " %%i in (c:\monfichier.txt) DO (
set dupond = dupond )
Sauf que si je change le nom dupond dans le fichier, je souhaite que le nom de ma variable change elle aussi.
Par exemple :
Dans monfichier.txt est inscrit : Dupond Dupont
Dans mon fichier bat je voudrais :
FOR /F "tokens=1,1 delims= " %%i in (c:\monfichier.txt) DO (
set dupond = dupond )
Sauf que si je change le nom dupond dans le fichier, je souhaite que le nom de ma variable change elle aussi.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
si ce qu'il dis est just tu fais just un fetch dans ton fichier txt
ca fera un truc comme ca (comme je ne connais pas la syntaxe je te donne just les actions)
C:> set a= fetch1ermot(fichier.txt)
C:> set %a%= 1
ce qui donnera :
C:> set dupond
dupond = 1
C:> set /a %a%+=1
2
C:> set /a %a%+=1
3
C:> set dupond
dupond= 3
apres ca syntaxe me dis rien bon je ne suis pas expert en batch
Cordialement
Dragondark De lonlindil
ca fera un truc comme ca (comme je ne connais pas la syntaxe je te donne just les actions)
C:> set a= fetch1ermot(fichier.txt)
C:> set %a%= 1
ce qui donnera :
C:> set dupond
dupond = 1
C:> set /a %a%+=1
2
C:> set /a %a%+=1
3
C:> set dupond
dupond= 3
apres ca syntaxe me dis rien bon je ne suis pas expert en batch
Cordialement
Dragondark De lonlindil