Pb avec un fichier batch sous windows (shell)
Nangel38
-
abouder Messages postés 14 Date d'inscription Statut Membre Dernière intervention -
abouder Messages postés 14 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
je e comprend pas pourquoi rien ne se passe quand j'exécute mon script dans l'invite de commande sous Windows
le but du script étant de déterminer a quelle catégorie appartient la personne qui rentre sa date de naissance en argument.
merci d'avance pour votre aide.
@echo off
if "%1"=="/?" goto usage
if "%1"==""( echo Aucun parametre : rentrez votre annee de naissance
goto fin )
set /a "diff=1969-%1"
if %diff% LSS 0 (set CAT1 = veterans
goto ecrire)
if "%1"=="1986"( set CAT1 = "seniors"
goto ecrire)
if "%1"=="1970"( set CAT1 = "seniors"
goto ecrire)
if "%1"=="1989"( set CAT1 = espoir
goto ecrire)
if "%1"=="1987"( set CAT1 = espoir
goto ecrire)
if "%1"=="1991"( set CAT1 = "juniors"
goto ecrire)
if "%1"=="1990"( set CAT1 = juniors
goto ecrire)
if "%1"=="1993"( set CAT1 = cadets
goto ecrire)
if "%1"=="1992"( set CAT1 = cadets
goto ecrire)
if "%1"=="1995"( set CAT1 = minimes
goto ecrire)
if "%1"=="1994"( set CAT1 = minimes
goto ecrire)
if "%1"=="1997"( set CAT1 = benjamins
goto ecrire)
if "%1"=="1996"( set CAT1 = benjamins
goto ecrire)
if "%1"=="1999"( goto ecrire
echo poussin)
if "%1"=="1998"( set CAT1 = poussins
goto ecrire)
else ( set CAT1 = "ecole d'athlestisme"
goto ecrire)
:ecrire
echo la categorie correspondant a l'annee de naissance : %1 est : %CAT1%
goto fin
:usage
echo format de la commande : Categorie anneeDeNaissance
:fin
je e comprend pas pourquoi rien ne se passe quand j'exécute mon script dans l'invite de commande sous Windows
le but du script étant de déterminer a quelle catégorie appartient la personne qui rentre sa date de naissance en argument.
merci d'avance pour votre aide.
@echo off
if "%1"=="/?" goto usage
if "%1"==""( echo Aucun parametre : rentrez votre annee de naissance
goto fin )
set /a "diff=1969-%1"
if %diff% LSS 0 (set CAT1 = veterans
goto ecrire)
if "%1"=="1986"( set CAT1 = "seniors"
goto ecrire)
if "%1"=="1970"( set CAT1 = "seniors"
goto ecrire)
if "%1"=="1989"( set CAT1 = espoir
goto ecrire)
if "%1"=="1987"( set CAT1 = espoir
goto ecrire)
if "%1"=="1991"( set CAT1 = "juniors"
goto ecrire)
if "%1"=="1990"( set CAT1 = juniors
goto ecrire)
if "%1"=="1993"( set CAT1 = cadets
goto ecrire)
if "%1"=="1992"( set CAT1 = cadets
goto ecrire)
if "%1"=="1995"( set CAT1 = minimes
goto ecrire)
if "%1"=="1994"( set CAT1 = minimes
goto ecrire)
if "%1"=="1997"( set CAT1 = benjamins
goto ecrire)
if "%1"=="1996"( set CAT1 = benjamins
goto ecrire)
if "%1"=="1999"( goto ecrire
echo poussin)
if "%1"=="1998"( set CAT1 = poussins
goto ecrire)
else ( set CAT1 = "ecole d'athlestisme"
goto ecrire)
:ecrire
echo la categorie correspondant a l'annee de naissance : %1 est : %CAT1%
goto fin
:usage
echo format de la commande : Categorie anneeDeNaissance
:fin
A voir également:
- Pb avec un fichier batch sous windows (shell)
- Fichier bin - Guide
- Comment réduire la taille d'un fichier - Guide
- Comment ouvrir un fichier epub ? - Guide
- Fichier rar - Guide
- Fichier batch - Guide
4 réponses
salut Nangel38
vous devez faire un pause pour voir le résultat , ajoutez l'instruction soulignée sous dessous :
@echo off
if "%1"=="/?" goto usage
if "%1"==""( echo Aucun parametre : rentrez votre annee de naissance
goto fin )
set /a "diff=1969-%1"
if %diff% LSS 0 (set CAT1 = veterans
goto ecrire)
if "%1"=="1986"( set CAT1 = "seniors"
goto ecrire)
if "%1"=="1970"( set CAT1 = "seniors"
goto ecrire)
if "%1"=="1989"( set CAT1 = espoir
goto ecrire)
if "%1"=="1987"( set CAT1 = espoir
goto ecrire)
if "%1"=="1991"( set CAT1 = "juniors"
goto ecrire)
if "%1"=="1990"( set CAT1 = juniors
goto ecrire)
if "%1"=="1993"( set CAT1 = cadets
goto ecrire)
if "%1"=="1992"( set CAT1 = cadets
goto ecrire)
if "%1"=="1995"( set CAT1 = minimes
goto ecrire)
if "%1"=="1994"( set CAT1 = minimes
goto ecrire)
if "%1"=="1997"( set CAT1 = benjamins
goto ecrire)
if "%1"=="1996"( set CAT1 = benjamins
goto ecrire)
if "%1"=="1999"( goto ecrire
echo poussin)
if "%1"=="1998"( set CAT1 = poussins
goto ecrire)
else ( set CAT1 = "ecole d'athlestisme"
goto ecrire)
:ecrire
echo la categorie correspondant a l'annee de naissance : %1 est : %CAT1%
goto fin
:usage
echo format de la commande : Categorie anneeDeNaissance
:fin
pause
n'oubliez pas de mentionner que votre pb est résolu SVP
wada3an
vous devez faire un pause pour voir le résultat , ajoutez l'instruction soulignée sous dessous :
@echo off
if "%1"=="/?" goto usage
if "%1"==""( echo Aucun parametre : rentrez votre annee de naissance
goto fin )
set /a "diff=1969-%1"
if %diff% LSS 0 (set CAT1 = veterans
goto ecrire)
if "%1"=="1986"( set CAT1 = "seniors"
goto ecrire)
if "%1"=="1970"( set CAT1 = "seniors"
goto ecrire)
if "%1"=="1989"( set CAT1 = espoir
goto ecrire)
if "%1"=="1987"( set CAT1 = espoir
goto ecrire)
if "%1"=="1991"( set CAT1 = "juniors"
goto ecrire)
if "%1"=="1990"( set CAT1 = juniors
goto ecrire)
if "%1"=="1993"( set CAT1 = cadets
goto ecrire)
if "%1"=="1992"( set CAT1 = cadets
goto ecrire)
if "%1"=="1995"( set CAT1 = minimes
goto ecrire)
if "%1"=="1994"( set CAT1 = minimes
goto ecrire)
if "%1"=="1997"( set CAT1 = benjamins
goto ecrire)
if "%1"=="1996"( set CAT1 = benjamins
goto ecrire)
if "%1"=="1999"( goto ecrire
echo poussin)
if "%1"=="1998"( set CAT1 = poussins
goto ecrire)
else ( set CAT1 = "ecole d'athlestisme"
goto ecrire)
:ecrire
echo la categorie correspondant a l'annee de naissance : %1 est : %CAT1%
goto fin
:usage
echo format de la commande : Categorie anneeDeNaissance
:fin
pause
n'oubliez pas de mentionner que votre pb est résolu SVP
wada3an
Bonjour,
Pour que cela marche il faut respecter la syntaxe suivante :
-Espace entre le test et l'action : if "%1"=="" ( et non pas if "%1"==""(
-Appel d'une etiquette avec un : devant
Le test est fait a l'envers :
if %diff% GTR 0 (set CAT1 = veterans
goto :ecrire)
Si tu veux voir ce que fait ton code
@echo on a la place de @echo off
Tu remets off quand ton code fonctionne
Pour que cela marche il faut respecter la syntaxe suivante :
if "%1"=="" ( echo Aucun parametre : rentrez votre annee de naissance goto :fin )
-Espace entre le test et l'action : if "%1"=="" ( et non pas if "%1"==""(
-Appel d'une etiquette avec un : devant
Le test est fait a l'envers :
if %diff% GTR 0 (set CAT1 = veterans
goto :ecrire)
Si tu veux voir ce que fait ton code
@echo on a la place de @echo off
Tu remets off quand ton code fonctionne
hello
et pas d'espace avec le set sinon tu as un espace dans le nom de la variable
et pas d'espace avec le set sinon tu as un espace dans le nom de la variable
C:> set CAT1 = veterans C:> echo %CAT1% %CAT1% C:> echo %CAT1 % veterans C:> set CAT1=veterans C:> echo %CAT1% veterans
c'est un problème de syntaxe voici votre code, voici votre code corrigé
@echo off
if "%1"=="/?" goto usage
if "%1"=="" ( echo Aucun parametre : rentrez votre annee de naissance
goto fin )
set /a "diff=1969-%1"
if %diff% LSS 0 (set CAT1="veterans"
goto ecrire)
if "%1"=="1986" ( set CAT1="seniors"
goto ecrire)
if "%1"=="1970" ( set CAT1 ="seniors"
goto ecrire)
if "%1"=="1989" ( set CAT1=espoir
goto ecrire)
if "%1"=="1987" ( set CAT1=espoir
goto ecrire)
if "%1"=="1991" ( set CAT1="juniors"
goto ecrire)
if "%1"=="1990" ( set CAT1=juniors
goto ecrire)
if "%1"=="1993" ( set CAT1=cadets
goto ecrire)
if "%1"=="1992" ( set CAT1=cadets
goto ecrire)
if "%1"=="1995" ( set CAT1=minimes
goto ecrire)
if "%1"=="1994" ( set CAT1=minimes
goto ecrire)
if "%1"=="1997" ( set CAT1=benjamins
goto ecrire)
if "%1"=="1996" ( set CAT1=benjamins
goto ecrire)
if "%1"=="1999" ( goto ecrire
echo poussin)
if "%1"=="1998"( set CAT1=poussins
goto ecrire)
else (set CAT1="ecole d'athlestisme"
goto ecrire)
:ecrire
echo la categorie correspondant a l'annee de naissance : %1 est : %CAT1%
goto fin
:usage
echo format de la commande : Categorie anneeDeNaissance
:fin
pause
@echo off
if "%1"=="/?" goto usage
if "%1"=="" ( echo Aucun parametre : rentrez votre annee de naissance
goto fin )
set /a "diff=1969-%1"
if %diff% LSS 0 (set CAT1="veterans"
goto ecrire)
if "%1"=="1986" ( set CAT1="seniors"
goto ecrire)
if "%1"=="1970" ( set CAT1 ="seniors"
goto ecrire)
if "%1"=="1989" ( set CAT1=espoir
goto ecrire)
if "%1"=="1987" ( set CAT1=espoir
goto ecrire)
if "%1"=="1991" ( set CAT1="juniors"
goto ecrire)
if "%1"=="1990" ( set CAT1=juniors
goto ecrire)
if "%1"=="1993" ( set CAT1=cadets
goto ecrire)
if "%1"=="1992" ( set CAT1=cadets
goto ecrire)
if "%1"=="1995" ( set CAT1=minimes
goto ecrire)
if "%1"=="1994" ( set CAT1=minimes
goto ecrire)
if "%1"=="1997" ( set CAT1=benjamins
goto ecrire)
if "%1"=="1996" ( set CAT1=benjamins
goto ecrire)
if "%1"=="1999" ( goto ecrire
echo poussin)
if "%1"=="1998"( set CAT1=poussins
goto ecrire)
else (set CAT1="ecole d'athlestisme"
goto ecrire)
:ecrire
echo la categorie correspondant a l'annee de naissance : %1 est : %CAT1%
goto fin
:usage
echo format de la commande : Categorie anneeDeNaissance
:fin
pause