Batch Index du Forum
S’enregistrerRechercherFAQMembresGroupesConnexion
Répondre au sujet Page 1 sur 2
Aller à la page: 1, 2  >
Problème avec une condition
Auteur Message
Répondre en citant
Message Problème avec une condition 
(Désolé pour le titre pas clair j'avais pas d'idée)

Hello

Comme "Stryk" me la dit je poste mon problème ici :

Mon programme se ferme automatiquement rendu à une condition et je sais pas pourquoi ._.
Mais si j'enlève cette condition.. : Ça marche...

Code:
editv64 -l 350 -p "[%pseudo%] " voiceun
if not defined voiceun (cls &goto mode1)
if %voiceun%==.pseudo (cls &goto pseudochoix)
if %voiceun%==.debug (cls &goto debuglog)
if defined voiceun echo %voiceunlog%%voiceun% >> log.txt

Comme vous pouvez le voir c'est une sorte de chat (C'est pas un chat c'est plutôt un truc où ont peut écrire ce qu'on veut disons vous verrez lorsque que j'aurais fini)
Je demande une entrée utilisateur avec editvar la commande externe le résultat est mis dans la variable voiceun (pseudo/voiceunlog correspond au pseudo choisi pas important )
"if not defined voiceun" Si l'utilisateur écrit rien faire... Ça marche mais le problème c'est que si j'écris "espace" ça se ferme... Le truc c'est que si j'enlève les deux conditions plus bas

Code:
if %voiceun%==.pseudo (cls &goto pseudochoix))
if %voiceun%==.debug (cls &goto debuglog)

Ça marche... u.u' Ces deux conditions sont obligatoire si je les enlèves mon prog perd de l'intérêt... Donc comment faire pour que ça marche même si je mets seulement un espace ?
J'ai essayer plein de truc comme par-exemple :
Code:
if defined voiceun (if %voiceun%==.pseudo (cls &goto pseudochoix))
if defined voiceun (if %voiceun%==.debug (cls &goto debuglog))

Mais ça marche pas... Je sais donc pas quoi faire
Si vous pouviez m'aider ça serait gentil ! Merci d'avance !




______________________________________________________
C'est déjà assez triste de n'avoir rien à dire. Si, en plus, il fallait se taire !
Message Publicité 
PublicitéSupprimer les publicités ?


Répondre en citant
Message Problème avec une condition 
Hello,

Tu devrais plutot utiliser "set /p" que editv64, ton prog fonctionnerais sur tout les Windows ^^
Remplace par ceci, tout ira bien Wink :
Code:

set voiceun=UNDEF
set /p voiceun=Ton pseudo:
if "%voiceun%==UNDEF" (cls &goto mode1)
if "%voiceun%==.pseudo" (cls &goto pseudochoix)
if "%voiceun%==.debug" (cls &goto debuglog)
echo %voiceunlog%%voiceun% >> log.txt


@+




______________________________________________________


L'ignorance est un fléau qui engendre la haine et la mort
La connaissance est une arme qui surpasse toutes les autres
Partagez votre savoir, sinon il sera perdu à jamais
Répondre en citant
Message Problème avec une condition 
Je ferais deux versions : 32 et 64Bits donc il marchera sur tout les Windows non ?
(Et avec set /p comment je fait pour limiter à 300 caractères ? Ou pour autorisé seulement les chiffres ? )

Puis ton code ne marche pas Sad
La fenêtre se ferme tout de suite peut importe ce que je tape.. ._. Mais encore si j'enlève les deux conditions ça marche u.u'




______________________________________________________
C'est déjà assez triste de n'avoir rien à dire. Si, en plus, il fallait se taire !
Répondre en citant
Message Problème avec une condition 
Ok,

et comme ceci ?
Code:

set voiceun=UNDEF
set /p voiceun=Ton pseudo:
if %voiceun%==UNDEF (
cls
goto mode1
)
if %voiceun%==.pseudo (
cls
goto pseudochoix
)
if %voiceun%==.debug (
cls
goto debuglog
)
echo %voiceunlog%%voiceun% >> log.txt


Et non, moi par exemple, editvr ne fonctionne pas je suis sous XP ...




______________________________________________________


L'ignorance est un fléau qui engendre la haine et la mort
La connaissance est une arme qui surpasse toutes les autres
Partagez votre savoir, sinon il sera perdu à jamais
Répondre en citant
Message Problème avec une condition 
Ça marche... Mais si ont mets un espace... (Ça ferme tout de suite)

Ah, moi Editvar marche parfaitement sur mon XP (Je suis sur 7 mais j'ai XP sur un autre ordi)




______________________________________________________
C'est déjà assez triste de n'avoir rien à dire. Si, en plus, il fallait se taire !
Répondre en citant
Message Problème avec une condition 
a quoi correspond concrètement .pseudo
et .debug



Répondre en citant
Message Problème avec une condition 
RE,

Editvar est une commande externe ... donc, pas installée sur tous les Windows !

Comment ca un espace ?
Juste un espace tout seul ou un espace dans le pseudo ?




______________________________________________________


L'ignorance est un fléau qui engendre la haine et la mort
La connaissance est une arme qui surpasse toutes les autres
Partagez votre savoir, sinon il sera perdu à jamais
Répondre en citant
Message Problème avec une condition 
.pseudo et .debug sont juste deux mots que je peut taper mais je voudrais mettre une action spécial si ont tape ces deux mots (Par exemple ici si je tape .pseudo je vais aller au label pseudochoix qui me permet de choisir un pseudo)
C'est une sorte de chat je veut que si ont écrit .pseudo dans le chat ça nous emmène au label pseudochoix (Où ont peut choisir son pseudo) Ça marche mais si je met un espace dans une phrase bam mon programme se ferme automatiquement
Exemple avec les deux conditions : (Quand j'écris espace ca veut dire un espace hein)
Code:
Marche :
Salutespace
Ne marche pas :
espace
SalutespaceÇaespaceva

Exemple si j'enlève les deux conditions qui permettent de faire marcher .pseudo et .debug
Code:
Marche :
Espace
SalutespaceÇaespaceva
Tout marche quoi


Stryk : Un espace dans mon entrée utilisateur... : Editvar demande une valeur à l'utilisateur comme set /p
Si je met des espace par exemple : "Salut Ça va" ca plante il gère pas les espaces quoi.
Mais si j'enlève les deux conditions :
Code:
if %voiceun%==.pseudo (cls &goto pseudochoix))
if %voiceun%==.debug (cls &goto debuglog)


Là je peut mettre des espaces dans mes phrases..
Si j'enlève les deux conditions tout marche correctement

Selon moi c'est if defined qui plante à cause des deux conditions

Sinon il suffit de mettre la commande externe dans le dossier de mon batch non ?

Code:
monbat.bat
EditV64.exe





______________________________________________________
C'est déjà assez triste de n'avoir rien à dire. Si, en plus, il fallait se taire !
Répondre en citant
Message Problème avec une condition 
RE,

On va y arriver, lol ... Mr. Green

Désolé, j'y vais à tâtons, j'ai pas le code complet, j'ai pas l'habitude ^^

Essayes ceci, logiquement ça devrait aller mieux !

Code:

set voiceun=UNDEF
set /p voiceun=Ton pseudo:
if "%voiceun%"==UNDEF (cls &goto mode1)
if "%voiceun%"==.pseudo (cls &goto pseudochoix)
if "%voiceun%"==.debug (cls &goto debuglog)
echo %voiceunlog%%voiceun% >> log.txt


Mdr, voici mon code de test qui fonctionne Wink
Code:

@echo off
set test=hello man
if "%test%"==yop echo yop
echo pas yop
pause


Et oui, si editvar est dans le même dossier que le batch c'est bon ... mais ... il faudrait aussi vérifier
la version de l'OS pour utiliser le bon editvar ...

Fais comme tu veux, mais à ta place, le choix serais vite fait : remplace par SET /P

@+ bye




______________________________________________________


L'ignorance est un fléau qui engendre la haine et la mort
La connaissance est une arme qui surpasse toutes les autres
Partagez votre savoir, sinon il sera perdu à jamais
Répondre en citant
Message Problème avec une condition 
!... !... !... Ça marche pas
Si j'écris rien du tout ça écrit UNDEF... Y'a pas moyen de faire que ça écrive rien et que ça fasse seulement un cls &goto mode1 ?
(Je t'explique avant mon set /p il y a "type log.txt" dans le fichier log.txt y'a donc [Pseudo] UNDEF )

Aussi mes deux conditions marchent pas.. Ont va y arriver... Un jour peut-être *-*
J'ai l'impression que tu essai pas de réglé le bon problème mon problème se situe au niveau des mes deux condition.. J'en suis sûr : C'est rendu aux conditions que ça plante et si je les enlèves ça marche.

Tout mon programme est fait mais il reste un bug.. Ce bug ._.




______________________________________________________
C'est déjà assez triste de n'avoir rien à dire. Si, en plus, il fallait se taire !
Répondre en citant
Message Problème avec une condition 
Héhé ... oui je comprends bien le bug, c'est les espaces ...
retires les parenthèses GUILLEMETS de ce code, et tu verras d'où viens le souci Wink
Mais par contre, avec ça devrais marcher, c'est bizarre ??
Code:

@echo off
set pseudo=\\..:: yu gi ho ::..//
:: essaye sans les "" autour de %pseudo%
if "%pseudo%"==goldorak goto has_been
echo %pseudo%
pause




Dernière édition par stryk le Mer 1 Déc 2010 - 20:54; édité 1 fois

______________________________________________________


L'ignorance est un fléau qui engendre la haine et la mort
La connaissance est une arme qui surpasse toutes les autres
Partagez votre savoir, sinon il sera perdu à jamais
Répondre en citant
Message Problème avec une condition 
Enlève les parenthèses ? C'est à dire ?
Je l'ai ai enlever de mon code (Celui avec editvar) et ça à rien changer (Ou sinon tu parle des guillemets ( "" ) )

Ah oui je viens de voir votre/ton code sans les guillemets ça ne marche pas normalement c'est ça mon bug !
Dans mon code si je fait
Code:
if "%voiceun%"==.pseudo cls &goto pseudochoix
if "%voiceun%"==.debug cls &goto debuglog

Mes conditions ne marchent plus si je tape .pseudo ça fait rien...




______________________________________________________
C'est déjà assez triste de n'avoir rien à dire. Si, en plus, il fallait se taire !
Répondre en citant
Message Problème avec une condition 
hello!

LOL stryk arrète de balancer des choses fausses Wink Mr. Green.... si tu veux que les deux parties soient gales il faut faire :
Code:
if "%voiceun%"==".pseudo" cls &goto pseudochoix
if "%voiceun%"==".debug" cls &goto debuglog


Parce que pour cmd.exe '".debug"' est complètement diférent de '.debug'

@+




______________________________________________________
--
> Que pensez vous de l'ajout du repertoire point dans $PATH ?
Ma version de troll 18.0.32 beta 3 vient de me faire un core dump.
-+- SE in Guide du Linuxien Pervers : Bien développer son troll -+-

[Dos9]
Visiter le site web du posteur Skype
Répondre en citant
Message Problème avec une condition 
Oui, guillemets pas parentheses Embarassed

Sinon, tant qu'il n'y a pas d'espace pas besoin de "" GUILLEMETS ...
donc
Code:

if "%voiceun%"==".pseudo" cls &goto pseudochoix
:: est identique à ceci
if "%voiceun%"==.pseudo cls &goto pseudochoix


@+




______________________________________________________


L'ignorance est un fléau qui engendre la haine et la mort
La connaissance est une arme qui surpasse toutes les autres
Partagez votre savoir, sinon il sera perdu à jamais
Répondre en citant
Message Problème avec une condition 
Darkbatcher a écrit:
hello!

LOL stryk arrète de balancer des chause fausses Wink Mr. Green.... si tu veux que les deux parties soient gales il faut faire :
Code:
if "%voiceun%"==".pseudo" cls &goto pseudochoix
if "%voiceun%"==".debug" cls &goto debuglog


Alors là ça me tue. Il fallait seulement mettre des guillemets ._.
Sinon ça plante si je met : " (Juste un guillemets.. Je peut mettre des mots après ça plante quand même mais si je met deux guillemets là ça fail pas.) Façon d'arranger ça ?
J'imagine un truc comme ça :
Code:
Set voiceun=%voiceun:"=""

Mais... Ça marche pas.

Après deuxième chose qui me tue : "balancer des chause fausses"

Merci Darkbatcher ! Je vais pouvoir (enfin) continuer mon programme ! (Et peut-être un jour le présentez ici)




______________________________________________________
C'est déjà assez triste de n'avoir rien à dire. Si, en plus, il fallait se taire !
Message Problème avec une condition 


Montrer les messages depuis:
Répondre au sujet Page 1 sur 2
Aller à la page: 1, 2  >
  



Index | créer un forum | Forum gratuit d’entraide | Annuaire des forums gratuits | Signaler une violation | Conditions générales d'utilisation
Copyright 2008 - 2016 // Batch