Probleme avec mon batch
FRED92G
-
dg_belmontet Messages postés 320 Date d'inscription Statut Membre Dernière intervention -
dg_belmontet Messages postés 320 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
j ai un souci avec mon batch surement un problème de variable je pence vue qu il me donne toujours les 2 réponse sauf que j aimerai que selon l age donner il me donne que une ou l autre mes pas les 2 a la foi.
ps: je vous joint mon code
j ai un souci avec mon batch surement un problème de variable je pence vue qu il me donne toujours les 2 réponse sauf que j aimerai que selon l age donner il me donne que une ou l autre mes pas les 2 a la foi.
ps: je vous joint mon code
@echo off set /P Nom="Comment t'appelles-tu ? " echo Bonjour %Nom% set /p Age="Quel age as-tu ? " set /a reste=65-Age :: reponse 1 echo Encore %reste% ans de turbin avant la retraite! set /a retraite= 0--Age :: reponse 2 echo vous avez %retraite% ans vous etre deja a la retraite. ping -n 30 localhost >nul
A voir également:
- Probleme avec mon batch
- Fichier batch - Guide
- Batch converter - Télécharger - Photo & Graphisme
- Batch renommer une partie du nom de plusieurs fichiers ✓ - Forum Autoit / batch
- Renommer tous les fichiers d'un dossier - Forum Windows
- Color batch - Forum Autoit / batch
15 réponses
hello
utiliser des % pour avoir le contenu de la variable et pas d'espaces après =
utiliser des % pour avoir le contenu de la variable et pas d'espaces après =
set /a reste=65-%Age% ... set /a retraite=0--%Age%
sa ne change rien il me donne toujour les 2 reponse ensemble que je voudrai qu il me donne que celle approprie.
si la personne a plus de 65 ans il doit me dir quel et a la retraite.
et non me dire avec qu il lui reste - quel que chose de boulot.
et si la personne a moin que les 65 ans il doit me dire juste le nombre d année quel a encore a faire encore avent la retrait.
et non me dire quel a tel age et que et a la retraite vue que c est pas le cas.
J'ai corrigé le code comme ceci il me manque plus que à trouver comment faire pour qu' il choisit la réponse correcte
si la personne a plus de 65 ans il doit me dir quel et a la retraite.
et non me dire avec qu il lui reste - quel que chose de boulot.
et si la personne a moin que les 65 ans il doit me dire juste le nombre d année quel a encore a faire encore avent la retrait.
et non me dire quel a tel age et que et a la retraite vue que c est pas le cas.
J'ai corrigé le code comme ceci il me manque plus que à trouver comment faire pour qu' il choisit la réponse correcte
@echo off set /P Nom="Comment t'appelles-tu ? " echo Bonjour %Nom% set /p Age="Quel age as-tu ? " set /a reste=65-Age :: reponse 1 echo Encore %reste% ans de turbin avant la retraite! :: reponse 2 echo vous avez %Age% ans vous etre deja a la retraite. ping -n 30 localhost >nul
je croie que je vais abandonner le prof de mon cousin se fera le plaisir de sortir son stylo rouge et e mettre le zéro et dire qu il y a quel que année j ai eu le même prof et le même exercice et que je me rappel plus de la solution je croie que cette foi si on va devoir me la donnée toute faite pour que je la comprenne la chose.
si tu veux bien te pencher dessus sa serai bien.
merci
si tu veux bien te pencher dessus sa serai bien.
merci
Bonsoir,
Essayez ceci :
@echo off
set /P Nom="Comment t'appelles-tu ? "
echo Bonjour %Nom%
set /p Age="Quel age as-tu ? "
set /a reste=65-%Age%
if %reste% gtr 0 echo Encore %reste% ans de turbin avant la retraite!
if %reste% LEQ 0 echo Vous avez %age% ans et vous etes deja a la retraite....
echo.
echo.
ping -n 30 localhost >nul
Le Wait (avec le ping) fait un peu bidouille... regardez si vous n'avez pas sur le micro l'exécutable Timeout.exe (si oui faire timeout /? pour le help).
Cordialement
Essayez ceci :
@echo off
set /P Nom="Comment t'appelles-tu ? "
echo Bonjour %Nom%
set /p Age="Quel age as-tu ? "
set /a reste=65-%Age%
if %reste% gtr 0 echo Encore %reste% ans de turbin avant la retraite!
if %reste% LEQ 0 echo Vous avez %age% ans et vous etes deja a la retraite....
echo.
echo.
ping -n 30 localhost >nul
Le Wait (avec le ping) fait un peu bidouille... regardez si vous n'avez pas sur le micro l'exécutable Timeout.exe (si oui faire timeout /? pour le help).
Cordialement
SA FONCTIONNE MES J AURAI BESOIN DE PLUS D EXPLICATION SUR LA FONCTION DES IF ET LES ECHO QUI SUIVE
if %reste% gtr 0 echo
if %reste% LEQ 0 echo
echo.
echo.
LE PING JE LES CHOISI POUR UNE HISTOIRE D ETRE SUR QUE LA POSE SOIT FAIT PAR LES VIEUX SYSTEM AU BAHU DE MON TEMPS ON TOURNER SUR DU WINDOWS 2000 DEPUIS IL SON PASSER A XP IL MA DIT MES XP GÈRE T IL LE TIMEOUT TEL ET LA QUESTION.
if %reste% gtr 0 echo
if %reste% LEQ 0 echo
echo.
echo.
LE PING JE LES CHOISI POUR UNE HISTOIRE D ETRE SUR QUE LA POSE SOIT FAIT PAR LES VIEUX SYSTEM AU BAHU DE MON TEMPS ON TOURNER SUR DU WINDOWS 2000 DEPUIS IL SON PASSER A XP IL MA DIT MES XP GÈRE T IL LE TIMEOUT TEL ET LA QUESTION.
La variable "reste" étant renseignée par l'utilisateur dans la question (65 - la saisie), dans la 1ère ligne (if %reste% gtr 0 .....) on teste si le résultat est plus grand que 0 (ceci indique qu'on a saisi une valeur inférieure à 65) donc echo il faut encore travailler.....
Dans la 2ème ligne (if %reste% LEQ 0 ....) on teste si le résultat est égal ou inférieur à 0 ceci indique que l'on a saisi 65 ou plus de 65 et on envoie l'echo pour dire que l'on est à la retraite.
Dans votre code initial, la variable %retraite% n'a pas lieu dêtre pour ce que vous voulez faire.
Pour l'histoire du Wait, effectivement cela dépendra de la version du système mais il est aussi possible que le Ping.exe ne soit pas sur tous les postes... Pour ma part j'ai un Windows 7 et j'ai Timeout.exe (voir si sous Win2000, il n'y a pas Wait.exe).
Pour la commande "set", il suffit de saisir set /? pour avoir l'aide. Ne pas oublier, quand on fait des calculs sur des variables et qu'il y en a une de renseignée, la syntaxe est : %variable% et dans le code il ne faut pas mettre d'espace derrière le signe égal (vous avez eu de la chance car ceci fonctionne mais ce n'est pas une habitude à prendre....) :
set /p Age="Quel age as-tu ? "
set /a reste=65-Age.
Voilà
Cdlt
Dans la 2ème ligne (if %reste% LEQ 0 ....) on teste si le résultat est égal ou inférieur à 0 ceci indique que l'on a saisi 65 ou plus de 65 et on envoie l'echo pour dire que l'on est à la retraite.
Dans votre code initial, la variable %retraite% n'a pas lieu dêtre pour ce que vous voulez faire.
Pour l'histoire du Wait, effectivement cela dépendra de la version du système mais il est aussi possible que le Ping.exe ne soit pas sur tous les postes... Pour ma part j'ai un Windows 7 et j'ai Timeout.exe (voir si sous Win2000, il n'y a pas Wait.exe).
Pour la commande "set", il suffit de saisir set /? pour avoir l'aide. Ne pas oublier, quand on fait des calculs sur des variables et qu'il y en a une de renseignée, la syntaxe est : %variable% et dans le code il ne faut pas mettre d'espace derrière le signe égal (vous avez eu de la chance car ceci fonctionne mais ce n'est pas une habitude à prendre....) :
set /p Age="Quel age as-tu ? "
set /a reste=65-Age.
Voilà
Cdlt
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
MERCI VOILA UNE COMPLICATION DE PLUS DE L ENONCER UN OUBLIE DU PROF IL DEMANDE DE FAIRE LE RAJOUT DE LA LIGNE POUR LES ANNÉE SUPPLÉMENTAIRE A BOSSER
VOILA SE QUE J AI RAJOUTER
set /P suplementaire="avez vous des annees a ratraper ? "
set /a ajustement=reste+suplementaire
MES EN IF
J AI MIE SA
if %reste% gtr 0 echo Vous avez %ajustement%Encore ans de turbin avant la retraite!
LE PROBLEME ET QUE MA IF RENTRE EN CONFLIE AVEC LA IF QUI DIT COMBIEN D ANNE IL RESTA A BOSSER AVENT LES ANNEE SUPPLÉMENTAIRE IL FAUDRAIT QUE MA IF SOI ELLE MÊME ASSOCIER A L AJUSTEMENT DE FAÇON QUEL S AFFICHE PAS AVEC LA IF SANS L AJUSTEMENT
VOILA SE QUE J AI RAJOUTER
set /P suplementaire="avez vous des annees a ratraper ? "
set /a ajustement=reste+suplementaire
MES EN IF
J AI MIE SA
if %reste% gtr 0 echo Vous avez %ajustement%Encore ans de turbin avant la retraite!
LE PROBLEME ET QUE MA IF RENTRE EN CONFLIE AVEC LA IF QUI DIT COMBIEN D ANNE IL RESTA A BOSSER AVENT LES ANNEE SUPPLÉMENTAIRE IL FAUDRAIT QUE MA IF SOI ELLE MÊME ASSOCIER A L AJUSTEMENT DE FAÇON QUEL S AFFICHE PAS AVEC LA IF SANS L AJUSTEMENT
@echo off
set /P Nom="Comment t'appelles-tu ? "
echo Bonjour %Nom%
set /p Age="Quel age as-tu ? "
set /a reste=65-Age
set /P suplementaire="avez vous des annees a rattraper ? "
set /a ajustement=reste+suplementaire
if %reste% gtr 0 echo Encore %reste% ans de turbin avant la retraite!
if %reste% LEQ 0 echo Vous avez %age% ans et vous etes deja a la retraite....
if %ajustement% gtr 0 echo Vous avez encore %ajustement% ans de turbin après ajustement des annees à rattraper avant la retraite!
ping -n 30 localhost >nul
set /P Nom="Comment t'appelles-tu ? "
echo Bonjour %Nom%
set /p Age="Quel age as-tu ? "
set /a reste=65-Age
set /P suplementaire="avez vous des annees a rattraper ? "
set /a ajustement=reste+suplementaire
if %reste% gtr 0 echo Encore %reste% ans de turbin avant la retraite!
if %reste% LEQ 0 echo Vous avez %age% ans et vous etes deja a la retraite....
if %ajustement% gtr 0 echo Vous avez encore %ajustement% ans de turbin après ajustement des annees à rattraper avant la retraite!
ping -n 30 localhost >nul
VOILA MA DERNIERE VERSION JE PENCE QUE DES MODIFICATION SON A FAIRE SI QUEL QU UN PEU ME DIRE MERCI
@echo off
set /P Nom="Comment t'appelles-tu ? "
echo Bonjour %Nom%
set /p Age="Quel age as-tu ? "
set /a reste=65-Age
set /P suplementaire="avez vous des annees a rattraper ? "
set /a ajustement=reste+suplementaire
set /a departage=reste+suplementaire+Age
if %reste% gtr 0 echo Encore %reste% ans de turbin avant la retraite!
if %age% LEQ 0 echo Vous avez %age% ans et vous etes deja a la retraite....
if %ajustement% gtr 0 echo Vous avez encore %ajustement% ans de turbin apres ajustement des annees a rattraper avant la retraite!
if %departage% gtr 0 echo Vous partirez a %departage% ans.
ping -n 30 localhost >nul
@echo off
set /P Nom="Comment t'appelles-tu ? "
echo Bonjour %Nom%
set /p Age="Quel age as-tu ? "
set /a reste=65-Age
set /P suplementaire="avez vous des annees a rattraper ? "
set /a ajustement=reste+suplementaire
set /a departage=reste+suplementaire+Age
if %reste% gtr 0 echo Encore %reste% ans de turbin avant la retraite!
if %age% LEQ 0 echo Vous avez %age% ans et vous etes deja a la retraite....
if %ajustement% gtr 0 echo Vous avez encore %ajustement% ans de turbin apres ajustement des annees a rattraper avant la retraite!
if %departage% gtr 0 echo Vous partirez a %departage% ans.
ping -n 30 localhost >nul
Re,
c'est sans fin...
Voici une ébauche de code en cas d'années à rattraper mais si on répond 65 et au-dessus il n'y a pas d'années à rattraper....
@echo off
echo.
set /P Nom="Comment t'appelles-tu ? "
echo.
echo Bonjour %Nom%
echo.
set /p Age="Quel age as-tu ? "
set /a reste=65-%Age%
if %reste% LEQ 0 goto :affiche
set /p choix="avez vous des annees a rattraper (O/N) ?"
if /I %choix% NEQ o goto :affiche
set /P sup_ans="Combien d'annees a rattraper ?"
set /a reste=%sup_ans%+%reste%
:affiche
echo.
if %reste% gtr 0 echo Encore %reste% ans de turbin avant la retraite!
if %reste% LEQ 0 echo Vous avez %age% ans et vous etes deja a la retraite....
ping -n 30 localhost >nul
exit
c'est sans fin...
Voici une ébauche de code en cas d'années à rattraper mais si on répond 65 et au-dessus il n'y a pas d'années à rattraper....
@echo off
echo.
set /P Nom="Comment t'appelles-tu ? "
echo.
echo Bonjour %Nom%
echo.
set /p Age="Quel age as-tu ? "
set /a reste=65-%Age%
if %reste% LEQ 0 goto :affiche
set /p choix="avez vous des annees a rattraper (O/N) ?"
if /I %choix% NEQ o goto :affiche
set /P sup_ans="Combien d'annees a rattraper ?"
set /a reste=%sup_ans%+%reste%
:affiche
echo.
if %reste% gtr 0 echo Encore %reste% ans de turbin avant la retraite!
if %reste% LEQ 0 echo Vous avez %age% ans et vous etes deja a la retraite....
ping -n 30 localhost >nul
exit
LA IL EST PRESQUE BON IL FAUDRAI JUSTE QU IL DISE A QUEL AGE PARTIRA LA PERSONNE APRES LES CALCULES SI ELLE A DES ANNEE EN PLUS ELLE PARTIRA PAS A 65 MES BIEN PLUS
Cette fois-ci il n'y a plus de condition s'il a atteint 65 et plus et s'il a des années à rattraper:
@echo off
echo.
set /P Nom="Comment t'appelles-tu ? "
echo.
echo Bonjour "%Nom%"
echo.
set /p Age="Quel age as-tu ? "
set /a reste=65-%Age%
echo.
set /p choix="Avez vous des annees a rattraper (O/N) ?"
if /I %choix% NEQ o goto :affiche
set /P sup_ans="Combien d'annees a rattraper ?"
if %reste% gtr 0 set /a reste=%sup_ans%+%reste%
if %reste% LEQ 0 set /a reste=%sup_ans%
:affiche
echo.
if %reste% gtr 0 echo Vous avez %age% ans et il vous reste encore %reste% ans de turbin avant la retraite!
if %reste% LEQ 0 echo Vous avez %age% ans et vous etes deja a la retraite....
ping -n 30 localhost >nul
exit
Autre chose: Attention à l'orthographe si tu veux avoir une note correcte....
@echo off
echo.
set /P Nom="Comment t'appelles-tu ? "
echo.
echo Bonjour "%Nom%"
echo.
set /p Age="Quel age as-tu ? "
set /a reste=65-%Age%
echo.
set /p choix="Avez vous des annees a rattraper (O/N) ?"
if /I %choix% NEQ o goto :affiche
set /P sup_ans="Combien d'annees a rattraper ?"
if %reste% gtr 0 set /a reste=%sup_ans%+%reste%
if %reste% LEQ 0 set /a reste=%sup_ans%
:affiche
echo.
if %reste% gtr 0 echo Vous avez %age% ans et il vous reste encore %reste% ans de turbin avant la retraite!
if %reste% LEQ 0 echo Vous avez %age% ans et vous etes deja a la retraite....
ping -n 30 localhost >nul
exit
Autre chose: Attention à l'orthographe si tu veux avoir une note correcte....
C EST PAS POUR MOI C EST POUR LE COUSIN SI IL Y A DES FOTE IL CORRIGERA AVENT MOI JE FAIT AU MIEUX ET JE L AVENCE VUE QUE LE PROF JE LE CONNAI SUR LA PREMIER PARTI CEST BON ET ON MEME FAIT LA 2 EME PARTI POUR LA SEMAINE D APRES CETTE EXERCICE DE MERDE JE LE CONNAI JE LES EU AUSSI IL Y A DEJA 10 ANS
PAR CONTRE IL MANQUE LA PHRASE QUI DIT VOUS PARTIREZ A TEL AGE A LA RETRAITE
POUR MOI 65 PLUS 2 ANS DE RATTRAPAGE SA FAIT 67
DONC IL DEVRAI DIRE VOUS PARTIREZ A 67 A LA RETRAITE
POUR MOI 65 PLUS 2 ANS DE RATTRAPAGE SA FAIT 67
DONC IL DEVRAI DIRE VOUS PARTIREZ A 67 A LA RETRAITE
Cette fois-ci c'est la dernière....
@echo off
echo.
set /P Nom="Comment t'appelles-tu ? "
echo.
echo Bonjour "%Nom%"
echo.
set /p Age="Quel age as-tu ? "
set /a reste=65-%Age%
echo.
set /p choix="Avez vous des annees a rattraper (O/N) ?"
if /I %choix% NEQ o goto :affiche
set /P sup_ans="Combien d'annees a rattraper ?"
if %reste% gtr 0 set /a reste=%sup_ans%+%reste%
if %reste% LEQ 0 set /a reste=%sup_ans%
set /a retraite=%age%+%reste%
:affiche
echo.
if %reste% gtr 0 echo Vous avez %age% ans, il vous reste encore %reste% ans de turbin avant la retraite, vous partirez donc a %retraite% ans !
if %reste% LEQ 0 echo Vous avez %age% ans et vous etes deja a la retraite....
ping -n 30 localhost >nul
exit
@echo off
echo.
set /P Nom="Comment t'appelles-tu ? "
echo.
echo Bonjour "%Nom%"
echo.
set /p Age="Quel age as-tu ? "
set /a reste=65-%Age%
echo.
set /p choix="Avez vous des annees a rattraper (O/N) ?"
if /I %choix% NEQ o goto :affiche
set /P sup_ans="Combien d'annees a rattraper ?"
if %reste% gtr 0 set /a reste=%sup_ans%+%reste%
if %reste% LEQ 0 set /a reste=%sup_ans%
set /a retraite=%age%+%reste%
:affiche
echo.
if %reste% gtr 0 echo Vous avez %age% ans, il vous reste encore %reste% ans de turbin avant la retraite, vous partirez donc a %retraite% ans !
if %reste% LEQ 0 echo Vous avez %age% ans et vous etes deja a la retraite....
ping -n 30 localhost >nul
exit
Bonjour,
Dernier petit rectificatif (remontée d'une ligne pour l'étiquette ":affiche") car la variable %retraite% ne serait pas renseignée s'il n'y a pas d'années à rattraper:
@echo off
echo.
set /P Nom="Comment t'appelles-tu ? "
echo.
echo Bonjour "%Nom%"
echo.
set /p Age="Quel age as-tu ? "
set /a reste=65-%Age%
echo.
set /p choix="Avez vous des annees a rattraper (O/N) ?"
if /I %choix% NEQ o goto :affiche
set /P sup_ans="Combien d'annees a rattraper ?"
if %reste% gtr 0 set /a reste=%sup_ans%+%reste%
if %reste% LEQ 0 set /a reste=%sup_ans%
:affiche
set /a retraite=%age%+%reste%
echo.
if %reste% gtr 0 echo Vous avez %age% ans, il vous reste encore %reste% ans de turbin avant la retraite, vous partirez donc a %retraite% ans !
if %reste% LEQ 0 echo Vous avez %age% ans et vous etes deja a la retraite....
ping -n 30 localhost >nul
exit
Ne pas oublier de mettre en "résolu" ce sujet.
Cdlt.
Dernier petit rectificatif (remontée d'une ligne pour l'étiquette ":affiche") car la variable %retraite% ne serait pas renseignée s'il n'y a pas d'années à rattraper:
@echo off
echo.
set /P Nom="Comment t'appelles-tu ? "
echo.
echo Bonjour "%Nom%"
echo.
set /p Age="Quel age as-tu ? "
set /a reste=65-%Age%
echo.
set /p choix="Avez vous des annees a rattraper (O/N) ?"
if /I %choix% NEQ o goto :affiche
set /P sup_ans="Combien d'annees a rattraper ?"
if %reste% gtr 0 set /a reste=%sup_ans%+%reste%
if %reste% LEQ 0 set /a reste=%sup_ans%
:affiche
set /a retraite=%age%+%reste%
echo.
if %reste% gtr 0 echo Vous avez %age% ans, il vous reste encore %reste% ans de turbin avant la retraite, vous partirez donc a %retraite% ans !
if %reste% LEQ 0 echo Vous avez %age% ans et vous etes deja a la retraite....
ping -n 30 localhost >nul
exit
Ne pas oublier de mettre en "résolu" ce sujet.
Cdlt.