Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1764 connectés 

  FORUM HardWare.fr
  Programmation
  Shell/Batch

  [BATCH] Améliorer ce bout de code? [résolu]

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[BATCH] Améliorer ce bout de code? [résolu]

n°1550335
armyman
Posté le 27-04-2007 à 05:23:49  profilanswer
 

Bonjour, je cherche à améliorer ce bout de code car je répète toujours la même action et je suis sur qu'il y a un autre moyen, une sorte de "switch case" peut etre?
 

Code :
  1. IF "%choice%" EQU " )" ((SET choice=) & CALL :ERROR 1)
  2. IF "%choice%" EQU ">" ((SET choice=) & CALL :ERROR 1)
  3. IF "%choice%" EQU "<" ((SET choice=) & CALL :ERROR 1)


Message édité par armyman le 28-04-2007 à 22:27:58
mood
Publicité
Posté le 27-04-2007 à 05:23:49  profilanswer
 

n°1550540
webding
Posté le 27-04-2007 à 14:12:16  profilanswer
 

A quoi te sert ce script je ne le comprend pas


Message édité par webding le 27-04-2007 à 14:28:52
n°1550635
armyman
Posté le 27-04-2007 à 15:29:38  profilanswer
 

C'est pour éviter de crasher mon programme quand j'entre un choix.
 
Si je fais :
 

Code :
  1. SET /P choice=Entre un choix:
  2. IF %choice% EQU 1 echo bla1
  3. IF %choice% EQU 2 echo bla2

^ ca,ca crash mon programme quand on entre aucune valeur, ou un espace vide, ou d'autres caractère spéciaux. De plus ca met l'ancienne valeur au prochain choix à faire.
 
 

Code :
  1. SET /P choice=Entre un choix:
  2. IF "%choice%" EQU ""  ((SET choice=) & CALL :ERROR 1)
  3. IF "%choice%" EQU "1" ((SET choice=) & GOTO START_EXE1)
  4. IF "%choice%" EQU "2" ((SET choice=) & GOTO START_EXE2)
  5. ((SET choice=) & CALL :ERROR 2 %choice%)

^ ca, ca résoud le problème des crash si aucune valeur n'est entrée ou seulement des espaces vides, et ca remet un choix vide pour la prochaine demande de choix. J'ai un callback :ERROR qui gère les erreur:

Code :
  1. :ERROR
  2. IF "%1" EQU "1" SET errormsg=Tu dois entrer une valeur!
  3. IF "%1" EQU "2" SET errormsg=Le choix "%2" n'existe pas!
  4. ECHO. & ECHO     %errormsg%
  5. GOTO RESTART


 
Mais ca résoud pas le problème des crashs avec des caractère comme " )" ">" "<" "|" etc etc, et le seul moyen que j'ai trouvé c'est de faire comme dans mon premier post. Je pense qu'il y a un moyen plus efficace en utilisant | (ou) mais franchement je trouve pas comment..mais bon c'est pas grave, c'est juste que j'aime avoir des codes nickel et efficaces.

n°1550642
webding
Posté le 27-04-2007 à 15:33:32  profilanswer
 

A mon avi tu t'emerde pour rien, c'est pas grave si sa carche quand tu rentre un caractére special

n°1550827
WiiDS
20 titres en GC, 0 abandon, 0 DQ
Posté le 27-04-2007 à 21:23:25  profilanswer
 

webding a écrit :

A mon avi tu t'emerde pour rien, c'est pas grave si sa carche quand tu rentre un caractére special


Tain ca c'est de la réponse pertinente.

n°1550892
webding
Posté le 28-04-2007 à 10:16:12  profilanswer
 

Je donne mon avi c'est tout

n°1550928
WiiDS
20 titres en GC, 0 abandon, 0 DQ
Posté le 28-04-2007 à 13:07:10  profilanswer
 

webding a écrit :

Je donne mon avi c'est tout


Ton avis on s'en fout un peu en fait, encore qu'il aurait pu être intéressant si tu avais eu un minimum de connaissances mais ce n'est pas le cas. Quand tu veux faire quelque chose utilisable par tout le monde il faut le perfectionner jusqu'a ce qu'il n'aie aucun problème.
 
En plus d'avoir fait deux posts inutiles, tu n'as pas répondu a la question d'armyman.

n°1551020
armyman
Posté le 28-04-2007 à 19:55:37  profilanswer
 

Allons allons ^^  
 
J'ai fais autrement et ca marche maintenant, le seul caractère qui crash c'est  "  et je crois qu'on peut rien faire contre ca :( . Enfin bon c'est pas trop grave lol.  
 
webding, j'aime le travail bien fait et aussi j'ai pas envie que les utilisateurs du prog se plaignent que ca crash :)

n°1551076
WiiDS
20 titres en GC, 0 abandon, 0 DQ
Posté le 28-04-2007 à 23:25:30  profilanswer
 

T'as essayé avec :

 

IF "%choice%" EQU "\"" ((SET choice=) & CALL :ERROR 1)

 

PS : Suggestion stupide mais bon :D


Message édité par WiiDS le 28-04-2007 à 23:25:40
n°1551084
armyman
Posté le 29-04-2007 à 00:06:26  profilanswer
 

Hehe j'avais pas pensé au caractère d'echappement..bon, ca change rien, mais merci quand même :)

mood
Publicité
Posté le 29-04-2007 à 00:06:26  profilanswer
 

n°2036770
TarHack
Hack For Ever !
Posté le 17-11-2010 à 22:28:37  profilanswer
 

Essaie ce Code:
 
@echo OFF
 
set choice=""
 
:loopenter
 
SET /P choice=Entre un choix:
 
IF %choice% EQU 1 @echo Value 1 OK
IF %choice% EQU 2 @echo Value 2 OK
 
IF %choice%.=="". (
  @echo. No Value Entered  
  goto loopenter
)
 
@echo. FIN


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Shell/Batch

  [BATCH] Améliorer ce bout de code? [résolu]

 

Sujets relatifs
un noob cherche à centrer une image [résolu][résolu] Probleme pour connaitre la taille d'une chaine de caracteres
[Résolu]Boucle et lecture de fichiers...PHP et Active Directory (fonction ldap_search) [résolu]
Insérer du code xml dans un xhtml[Résolu][C] problème de link SDL, SDL_image, SDL_ttf sous cygwin
[résolu] Remplissage d'un champ de formulaire par javascript[Résolu] Exécution de Visual Studio lors de crash des applis ?!
python et l'unicode : -U / python 3000 / repr ... [résolu]Créer un batch pour redémarrer un programme [résolu]
Plus de sujets relatifs à : [BATCH] Améliorer ce bout de code? [résolu]


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR